Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Kini usa ka transcript sa pakigpulong DevopsConf 2019-10-01 ΠΈ SPbLUG 2019-09-25.

Kini ang istorya sa usa ka proyekto nga naggamit sa usa ka self-written nga sistema sa pagdumala sa pagsumpo ug ngano nga ang pagbalhin sa Ansible mikabat ug 18 ka bulan.

Adlaw Num. -Π₯Π₯Π₯: Sa wala pa ang pagsugod

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Sa sinugdan, ang imprastraktura naglangkob sa daghang bulag nga mga host nga nagpadagan sa Hyper-V. Ang paghimo sa usa ka virtual nga makina nanginahanglan daghang mga lakang: pagbutang sa mga disk sa husto nga lugar, pagrehistro sa DNS, pagreserba sa DHCP, pagbutang sa VM configuration sa git repository. Kini nga proseso partially mechanized, apan pananglitan, ang mga VM giapod-apod tali sa mga host pinaagi sa kamot. Apan, pananglitan, ang mga developers mahimong magtul-id sa VM configuration sa git ug magamit kini pinaagi sa pag-reboot sa VM.

Solusyon sa Pagdumala sa Custom nga Pag-configure

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Ang orihinal nga ideya, nagduda ko, gipanamkon isip IaC: daghang mga stateless VM nga nag-reset sa ilang estado sa zero kung gi-reboot. Unsa ang pagdumala sa configuration sa VM? Sa eskematiko kini tan-awon nga yano:

  1. Usa ka static nga MAC ang gilansang alang sa VM.
  2. Usa ka ISO nga adunay CoreOS ug usa ka boot disk ang konektado sa VM.
  3. Gilunsad sa CoreOS ang customization script pinaagi sa pag-download niini gikan sa WEB server base sa IP niini.
  4. Ang script nag-download sa VM configuration pinaagi sa SCP base sa IP address.
  5. Ang footcloth sa systemd unit files ug ang footcloth sa bash scripts gilunsad.

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Kini nga solusyon adunay daghang klaro nga mga problema:

  1. Ang CoreOS ISO wala na gamita.
  2. Daghang mga komplikado nga awtomatiko nga aksyon ug salamangka kung mobalhin / paghimo mga VM.
  3. Ang kalisud sa pag-update ug kung gikinahanglan ang usa ka bersyon sa software. Mas makalingaw sa mga modulo sa kernel.
  4. Ang mga VM dili kaayo nakuha nga walay datos, i.e. Ang mga VM nagpakita nga adunay usa ka disk nga adunay dugang nga datos sa tiggamit nga gi-mount.
  5. Adunay kanunay nga nagdaot sa mga dependency sa systemd unit ug ang CoreOS mag-freeze kung mag-reboot. Lisud nga makuha kini gamit ang magamit nga mga himan sa CoreOS.
  6. Pagdumala sa mga sekreto.
  7. Walay CM. Adunay mga bash ug YML configs alang sa CoreOS.

Aron ma-apply ang configuration sa VM, kinahanglan nimo nga i-reboot kini, apan dili kini mahimo nga mag-reboot. Morag usa ka klaro nga problema, apan wala’y nagpadayon nga mga disk - wala’y lugar nga makatipig mga troso. Aw, ok, sulayan nato nga idugang ang opsyon sa pagkarga sa kernel aron mapadala ang mga log. Apan dili, unsa ka komplikado ang tanan.

Adlaw #0: Ilha ang problema

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Kini ang naandan nga imprastraktura sa pag-uswag: jenkins, mga palibot sa pagsulay, pag-monitor, rehistro. Ang CoreOS gidisenyo alang sa pag-host sa mga k8s cluster, i.e. ang problema mao kung giunsa gigamit ang CoreOS. Ang unang lakang mao ang pagpili sa usa ka stack. Nagpuyo kami sa:

  1. CentOS isip base distribution, kay Kini ang labing duol nga pag-apod-apod sa mga palibot sa produksiyon.
  2. Ansible alang sa pagdumala sa configuration, tungod kay adunay halapad nga pagsusi niini.
  3. Jenkins isip usa ka gambalay alang sa pag-automate sa kasamtangan nga mga proseso, tungod kay aktibo na kini nga gigamit alang sa mga proseso sa kalamboan
  4. Hyper-V isip usa ka plataporma sa virtualization. Adunay ubay-ubay nga mga rason nga labaw pa sa gidak-on sa istorya, apan sa laktud - dili nato magamit ang mga panganod, kinahanglan natong gamiton ang atong kaugalingong hardware.

Adlaw Num. 30: Pag-ayo sa kasamtangan nga mga kasabutan - Mga Kasabutan isip Code

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Sa diha nga ang stack klaro na, ang mga pagpangandam alang sa paglihok nagsugod. Pag-ayo sa kasamtangan nga mga kasabutan sa porma sa code (Mga Kasabutan isip Code!). Transisyon manual labor -> mekanisasyon -> automation.

1. I-configure ang mga VM

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Ang Ansible usa ka maayo nga trabaho niini. Sa usa ka minimum nga paglihok sa lawas mahimo nimong kontrolon ang mga pag-configure sa VM:

  1. Paghimo og git repository.
  2. Gibutang namon ang lista sa mga VM sa imbentaryo, mga pag-configure sa mga playbook ug mga tahas.
  3. Nagbutang kami usa ka espesyal nga jenkins nga ulipon diin mahimo nimong daganan ang Ansible.
  4. Naghimo kami usa ka trabaho ug gi-configure ang Jenkins.

Ang unang proseso andam na. Ang mga kasabutan gitakda.

2. Paghimo og bag-ong VM

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Ang tanan dinhi dili kaayo kombenyente. Dili kaayo kombenyente ang paghimo og mga VM sa Hyper-V gikan sa Linux. Usa sa mga pagsulay sa paghimo niini nga proseso mao ang:

  1. Ang Ansbile nagkonektar pinaagi sa WinRM sa host sa windows.
  2. Ang Ansible nagpadagan sa usa ka script sa powershell.
  3. Ang script sa Powershell nagmugna og bag-ong VM.
  4. Gamit ang Hyper-V/ScVMM, sa paghimo og VM sa guest OS, ang hostname gi-configure.
  5. Sa pag-update sa DHCP lease, ang VM nagpadala sa iyang hostname.
  6. Ang standard ddns & dhcp integration sa Domain Controller nga bahin nag-configure sa DNS record.
  7. Mahimo nimong idugang ang usa ka VM sa imong imbentaryo ug i-configure kini sa Ansible.

3. Paghimo og VM template

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Wala sila nag-imbento dinhi - nagkuha sila usa ka packer.

  1. Idugang ang packer, kickstart config sa git repository.
  2. Pag-set up sa usa ka espesyal nga jenkins nga ulipon nga adunay hyper-v ug Packer.
  3. Naghimo kami usa ka trabaho ug gi-configure ang Jenkins.

Giunsa kini nga link molihok:

  1. Ang Packer nagmugna og walay sulod nga VM ug gikuha ang ISO.
  2. Ang VM boots, ang Packer mosulod sa command sa bootloader aron gamiton ang among kickstart file gikan sa floppy disk o http.
  3. Ang Anaconda gilunsad sa among config, ug ang inisyal nga configuration sa OS nahuman na.
  4. Ang Packer naghulat alang sa VM nga magamit.
  5. Packer sa sulod sa VM modagan ansible sa lokal nga mode.
  6. Gigamit ni Ansible ang parehas nga mga tahas nga gigamit niini sa lakang #1.
  7. Gi-eksport sa Packer ang template sa VM.

Adlaw #75: I-refactor ang kasabutan nga walay paglapas = Test ansible + Testkitchen

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Ang pagkuha sa mga kombensiyon sa code mahimong dili igo. Human sa tanan, kung sa sulod ug gawas sa proseso gusto nimong usbon ang usa ka butang, mahimo nimong mabuak ang usa ka butang. Busa, sa kaso sa imprastraktura, ang pagsulay sa kini nga imprastraktura makita. Aron ma-synchronize ang kahibalo sulod sa team, gisugdan namo pagsulay ang mga tahas sa Ansible. Dili nako lalim kay... adunay usa ka artikulo nga naghulagway sa mga panghitabo sa maong punto sa panahon Sulayi ako kung mahimo nimo o ang mga programmer sa YML nagdamgo sa pagsulay sa Ansible?(spoiler dili kini ang katapusang bersyon ug sa ulahi ang tanan nahimong mas komplikado Giunsa pagsugod ang pagsulay sa Ansible, i-refactor ang proyekto sa usa ka tuig ug dili mabuang).

Adlaw #130: Tingali ang CentOS + ansible dili kinahanglan? baka openshift?

Kinahanglan natong masabtan nga ang proseso sa pagpaila sa imprastraktura dili lamang usa ug adunay mga side subprojects. Pananglitan, miabut ang usa ka hangyo nga ilunsad ang among aplikasyon sa openshift ug miresulta kini sa panukiduki sulod sa kapin sa usa ka semana Among gilusad ang aplikasyon sa Openshift ug itandi ang kasamtangang mga himan nga nagpahinay sa proseso sa paglihok. Ang resulta nahimo nga ang openshift wala maglakip sa tanan nga mga panginahanglan; kinahanglan nimo ang tinuod nga hardware, o labing menos ang abilidad sa pagdula sa kernel.

Adlaw #170: Dili angay ang Openshift, kuhaan ta ug higayon sa Windows Azure Pack?

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Ang Hyper-V dili kaayo mahigalaon, ang SCVMM dili makahimo niini nga mas maayo. Apan adunay usa ka butang sama sa Windows Azure Pack, nga usa ka add-on sa SCVMM ug gisundog ang Azure. Apan sa tinuud, ang produkto morag gibiyaan: ang dokumentasyon nabuak ang mga link ug gamay ra. Apan isip kabahin sa pagtuon sa mga kapilian sa pagpayano sa kinabuhi sa atong panganod, ila usab kining gitan-aw.

Adlaw #250: Ang Windows Azure Pack dili kaayo maayo. Nagpabilin kami sa SCVMM

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Ang Windows Azure Pack tan-awon nga nagsaad, apan nakahukom nga dili magdala sa WAP uban ang mga pagkakomplikado niini sa sistema alang sa dili kinahanglan nga mga bahin ug nagpabilin sa SCVMM.

Adlaw #360: Pagkaon sa elepante nga piraso por piraso

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Usa lang ka tuig ang milabay ang plataporma alang sa pagbalhin sa andam na ug ang proseso sa paglihok nagsugod. Alang niini nga katuyoan, usa ka SMART nga buluhaton ang gitakda. Among gisusi ang tanan nga mga VM ug gisugdan ang pag-ila sa pag-configure sa usag usa, ihulagway kini sa Ansible, ug gitabonan kini sa mga pagsulay.

Adlaw #450: Unsang matanga sa sistema ang imong nakuha?

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Ang proseso mismo dili makapaikag. Kini mao ang naandan, kini matikdan nga ang kadaghanan sa mga pag-configure medyo yano o isomorphic ug sumala sa prinsipyo sa Pareto, 80% sa mga VM nga mga pag-configure nanginahanglan 20% sa oras. Sa parehas nga prinsipyo, 80% sa oras ang gigugol sa pag-andam sa paglihok ug 20% ​​ra sa paglihok mismo.

Adlaw #540: Katapusan

Mahimo: Paglalin sa 120 VM configuration gikan sa CoreOS ngadto sa CentOS sa 18 ka bulan

Unsa ang nahitabo sa 18 ka bulan?

  1. Ang mga kasabutan nahimong kodigo.
  2. Manwal nga trabaho -> Mekanisasyon -> Automation.

Source: www.habr.com

Idugang sa usa ka comment