Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

See esitluse tÔlgendus DevopsConf 2019-10-01 ja SPbLUG 2019-09-25.

See on projekti lugu, kus kasutati kohandatud konfiguratsioonihalduse sĂŒsteemi ja miks ĂŒleminek Ansible'ile venis 18 kuud.

PĂ€ev № -ЄЄЄ: Enne algust

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

Algne infrastruktuur koosnes paljuski eraldiseisvatest hostidest, mida haldas Hyper-V. Virtuaalmachine'i loomine nÔudis palju samme: diskide paigutamine Ôigesse kohta, DNS-i seadistamine, DHCP reservatsioonide tegemine ja VM konfiguratsiooni salvestamine git-iga. See protsess oli osaliselt mehhaniseeritud, kuid nÀiteks VM-id jaotati hostide vahel kÀsitsi. Kuid arendajad said VM-i konfiguratsiooni git-iga muutes rakendada seda VM-i taaskÀivitamise kaudu.

Kohandatud konfiguratsioonihalduse lahendus

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

Algne idee, kahtlustan, oli mÔeldud nagu IaC: hulk staateless VM-e, mis lÀhtestavad oma oleku pÀrast taaskÀivitamist. Kuidas siis tundus VM-ide konfiguratsiooni haldamine? Skeemiliselt nÀeb see lihtne vÀlja:

  1. VM-idele mÀÀrati staatiline MAC.
  2. VM-ile ĂŒhendati ISO CoreOS ja kĂ€ivitusdisk.
  3. CoreOS kÀivitab kohandamise skripti, laadides selle alla veebiserverist vastavalt oma IP-le.
  4. Skript tÔmbab lÀbi SCP VM konfiguratsiooni, lÀhtudes IP-aadressist.
  5. KĂ€ivitub hulk systemd unit faile ja rida bash skripte.

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

Sellel lahendusel oli palju ilmselgeid probleeme:

  1. ISO CoreOS-is oli deprecated.
  2. Palju keerulisi automatiseeritud toiminguid ja maagia VM-ide migreerimisel/loomisel.
  3. Probleem uuendamisel ja kui vajalik on teatud versiooni tarkvara. Veelgi keerulisem oli tuumamoodulite puhul.
  4. VM-id ei olnud nii andmeteta, st ilmusid VM-id, millel oli lisaks monteeritud kettad kasutajate andmetega.
  5. Keegi eksis pidevalt systemd uniti sÔltuvustega ja CoreOS hangus taaskÀivitamisel. KÀesolevad vahendid CoreOS-is selle tabamiseks olid problemaatilised.
  6. Salajase haldamine.
  7. CM ei olnud sisuliselt olemas. Oli bash ja YML konfiguratsioonid CoreOS-is.

Kuna VM-i konfiguratsiooni rakendamiseks tuleb seda taaskĂ€ivitada, vĂ”is see mitte taaskĂ€ivituda. Tundub, et see on ilmne probleem, kuid pĂŒsiandmeid pole – logisid ei saa sĂ€ilitada. No hĂ€sti, proovime lisada kernelilaadimisvalikuid, et logid edastataks. Kuid ei, see on kĂ”ik nii keeruline.

PĂ€ev №0: Probleemi tunnustamine

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

See oli tavaline arenduste infrastruktuur: jenkins, testkeskkonnad, jÀlgimised, registrid. CoreOS oli mÔeldud k8s-klastrite majutamiseks, st probleem oli selles, kuidas CoreOS'i kasutati. Esimene samm oli steki valimine. Peatusime:

  1. CentOS kui pÔhijagamine, kuna see on kÔige lÀhemal tootmisreaktsioonidele.
  2. Ansible konfiguratsioonide haldamiseks, kuna selle kohta oli suur ekspertteave.
  3. Jenkinsile automaatika raamistikuna olemasolevate protsesside jaoks, kuna seda kasutati juba aktiivselt arendusprotsesside jaoks.
  4. Hyper-V virtualiseerimise platvormina. On mitmeid pĂ”hjuseid, mis ĂŒletavad jutustamise ulatust, kuid lĂŒhidalt - me ei saa kasutada pilvi, peame kasutama oma riistvara.

PĂ€ev nr 30: Fikseerime olemasolevad kokkulepped - Agreements as Code

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

Kui stek oli selge, algas ĂŒleviimise ettevalmistamine. Olemasolevate kokkulepetega koodina fikseerimine (Agreements as Code!). Üleminek kĂ€sitöö -> mehhaniseerimine -> automaatika.

1. Konfigureeri VM-id

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

Ansible teeb selle töö suurepÀraselt Àra. Minimaalse vaevaga saab hallata VM-i konfiguratsioone:

  1. Loo git-repositoorium.
  2. Paigutame VM-ide nimekirja inventuuri, konfiguratsioonid mÀngude ja rollidena.
  3. Seadistame spetsiaalse jenkins slave'i, mille kaudu saab ansible'it kÀivitada.
  4. Loome töö, seadistame Jenkins'i.

Esimene protsess on valmis. Kokkulepped on fikseeritud.

2. Loo uus VM

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

Siin polnud kĂ”ik vĂ€ga mugav. Linuxist oli ebamugav luua VM-e Hyper-V-s. Üks katse selle protsessi mehhaniseerimiseks oli:

  1. Ansible ĂŒhendub WinRM kaudu Windowsi hostiga.
  2. Ansible kÀivitab powershell skripti.
  3. Powershell skript loob uue VM.
  4. Hyper-V/ScVMM vahenditega seadistatakse vm-i loomisel kĂŒlgoperatsioonis hostname.
  5. VM saadab uuendades DHCP lease oma hostname'i.
  6. Eramud integreerimine ddns & dhcp Domaanikontrolleri poole seadistab DNS-i kirje.
  7. VM-id saab lisada inventuuri ja nende anabse'it seadistada.

3. Loo VM-i mall

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

Siin ei hakatud midagi leiutama - vÔeti packer.

  1. Git-repositooriumisse paneme packer'i konfi ja kickstart'i.
  2. Seadistame spetsiaalse jenkins slave'i hyper-v ja Packer'iga.
  3. Loome töö, seadistame Jenkins'i.

Kuidas see kombinatsioon töötab:

  1. Packer loob tĂŒhja VM-i, ĂŒhendab ISO-d.
  2. VM kÀivitub, Packer annab laadimisprogrammile kÀsu kasutada meie kickstart faili diskettidelt vÔi http-st.
  3. Anaconda kÀivitub meie konfiguratsiooniga, tehakse algseadistus OS-ile.
  4. Packer ootab VM-i kÀttesaadavust.
  5. Packer kĂ€ivitab VM-is ansible'i kohalikus reĆŸiimis.
  6. Ansible kasutab samu rolle nagu 1. sammus.
  7. Packer ekspordib VM-i ĆĄablooni.

PĂ€ev №75: Refaktoreerime kokkuleppeid, rikkumata = Testi ansible + Testkitchen

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

Kokkulepete koodiks fikseerimine vĂ”ib olla ebapiisav. Kui sa tahad protsessi kĂ€igus midagi muuta – vĂ”id midagi purustada. SeetĂ”ttu ilmneb infrastruktuuri testimise vajadus. Meie tiimis, et teadmisi sĂŒnkroniseerida, hakkasime testima Ansible rolle. Ei hakka sĂŒvitsi minema, sest on artikkel, mis kirjeldab tol ajal toimunud sĂŒndmusi. Proovi mind, kui suudad, vĂ”i unistavad YML-programmeerijad ansible'i testimisest?(spoiler: see ei olnud lĂ”plik variant ja hiljem lĂ€ks kĂ”ik keerulisemaks) Kuidas alustada Ansible'i testimist, refaktoreerida projekt aasta jooksul ja mitte Ă€ra hinge jÀÀda.).

PĂ€ev №130: Kas CentOS+ansible polegi vajalik? Äkki openshift?

Tuleb mĂ”ista, et infrastruktuuri kaasamise protsess ei olnud ainus ja tekkis kĂ”rvalprojekte. NĂ€iteks saime taotluse meie rakenduse kĂ€ivitamiseks openshiftis ja see kujunes vĂ€lja uuringuteks, mis kestsid ĂŒle nĂ€dala. KĂ€ivitame rakenduse Openshiftis ja vĂ”rdleme olemasolevat tööriistade komplekti. mis aeglustas ĂŒlemineku protsessi. Tulemuseks selgus, et openshift ei kata kĂ”iki vajadusi, vajalik on reaalne riistvara, vĂ”i vĂ€hemalt vĂ”imalus tuuma katsetamiseks.

PĂ€ev №170: Openshift ei sobi, kas riskime Windows Azure Packiga?

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

Hyper-V ei ole just sĂ”bralik, SCVMM ei tee seda palju paremaks. Kuid olemas on selline asi nagu Windows Azure Pack, mis on SCVMM-i pealiskonstruktsioon ja jĂ€ljendab Azure'i. Kuid tegelikkuses nĂ€eb toode vĂ€lja mahajĂ€etud: dokumentatsioon katkendlike linkidega ja ĂŒsna napp. Kuid meie pilve elu lihtsustamise valikute uurimise raames vaatasime ka seda.

PĂ€ev №250: Windows Azure Pack ei ole just parim. JÀÀme SCVMM-ile.

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

Windows Azure Pack nĂ€gi vĂ€lja paljutĂ”otav, kuid otsustati mitte tuua WAP-i oma sĂŒsteemi selle keerukustega tarbetute funktsioonide tĂ”ttu ja jÀÀda SCVMM-ile.

PĂ€ev №360: Sööme elevanti tĂŒkkide kaupa.

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

Alles aasta pĂ€rast oli platvorm, kuhu kolida, valmis ja algas ĂŒlemineku protsess. Selleks pandi paika S.M.A.R.T. ĂŒlesanne. KĂ”ik VM-id loetleti ja hakati ĂŒks haaval nende konfigureerimisega tegelema, kirjeldama seda Ansible'is ning katma testidega.

PĂ€ev №450: Milline sĂŒsteem vĂ€lja kujunes?

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

Protsess ise ei ole huvitav. See on rutiinne, vÔib mÀrkida, et enamik konfiguratsioone olid suhteliselt lihtsad vÔi isomorfsed ja Pareto printsiibi jÀrgi lÀks 80% konfiguratsioonide jaoks 20% ajast. Sama printsiibi kohaselt kulus 80% ajast koristustööde ettevalmistamiseks ja ainult 20% ise kolimiseks.

PĂ€ev nr 540: Finaal

Ansible: 120 VM CoreOS-i konfiguratsiooni migreerimine CentOS-ile 18 kuu jooksul

Mis toimub 18 kuu jooksul?

  1. Kokkulepped muutusid koodiks.
  2. KÀsitöö -> Mehaaniseerimine -> Automatiseerimine.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster