Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Hau hitzaldiaren transkripzioa da DevopsConf 2019-10-01 ΠΈ SPbLUG 2019-09-25.

Hau da, norberak idatzitako konfigurazio-kudeaketa sistema erabili zuen proiektu baten istorioa eta zergatik hartu zuen Ansiblera 18 hilabete pasatzeak.

Egun zenbakia -Π₯Π₯Π₯: Hasi baino lehen

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Hasieran, azpiegiturak Hyper-V exekutatzen zuten ostalari ezberdin asko zituen. Makina birtual bat sortzeak urrats asko behar zituen: diskoak leku egokian jartzea, DNS erregistratzea, DHCP erreserbatzea, VM konfigurazioa git biltegian jartzea. Prozesu hau partzialki mekanizatu zen, baina adibidez, VM-ak ostalarien artean eskuz banatzen ziren. Baina, adibidez, garatzaileek git-en VM konfigurazioa zuzendu eta aplikatu VM-a berrabiaraziz.

Konfigurazio pertsonalizatua kudeatzeko irtenbidea

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Jatorrizko ideia, susmoa dut, IaC gisa pentsatu zen: estaturik gabeko VM asko berrabiarazitakoan egoera zerora berrezartzen dutenak. Zer zen VM konfigurazio kudeaketa? Eskematikoki erraza dirudi:

  1. MAC estatiko bat iltzatu zen VMrako.
  2. CoreOS eta abio-disko bat dituen ISO bat VMra konektatuta zeuden.
  3. CoreOS-ek pertsonalizazio scripta abiarazten du WEB zerbitzaritik deskargatuz bere IP-aren arabera.
  4. Scriptak VM konfigurazioa deskargatzen du SCP bidez IP helbidean oinarrituta.
  5. Systemd unitate-fitxategien oinetakoa eta bash scripten oinetakoa abiarazten dira.

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Irtenbide honek arazo nabari asko zituen:

  1. CoreOS ISO zaharkituta geratu da.
  2. Ekintza automatizatu eta magia konplexu asko VM-ak migratzean/sortzean.
  3. Eguneratzeko zailtasuna eta softwarearen bertsio jakin bat behar denean. Are dibertigarriagoa nukleoko moduluekin.
  4. VM-ak ez ziren horrela lortu daturik gabe, hau da. VM-ak erabiltzailearen datu gehigarriak muntatuta zituen disko batekin agertu ziren.
  5. Norbaitek sistemaren unitateen mendekotasunak izorratzen zituen etengabe eta CoreOS izoztu egingo zen berrabiaraztean. Zaila izan zen hori harrapatzea CoreOS-en dauden tresnak erabiliz.
  6. Sekretuen kudeaketa.
  7. Ez zegoen CMrik. CoreOSerako bash eta YML konfigurazioak zeuden.

VM konfigurazioa aplikatzeko, berrabiarazi behar duzu, baina baliteke ez berrabiarazi. Arazo nabaria dirudi, baina ez dago disko iraunkorrik - ez dago erregistroak gordetzeko inon. Beno, ados, saia gaitezen nukleoa kargatzeko aukera gehitzen, erregistroak bidaliko dira. Baina ez, zein konplikatua den dena.

0. eguna: ezagutu arazoa

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Ohiko garapen azpiegitura zen: jenkins, proba-inguruneak, monitorizazioa, erregistroa. CoreOS k8s klusterrak ostatatzeko diseinatu zen, hau da. arazoa CoreOS nola erabiltzen zen zen. Lehen urratsa pila bat aukeratzea izan zen. Honekin finkatu ginen:

  1. CentOS oinarrizko banaketa gisa, zeren Hau da ekoizpen-inguruneetatik hurbilen dagoen banaketa.
  2. Ansible konfigurazio kudeaketarako, zeren azterketa zabala egin zen.
  3. Jenkins dauden prozesuak automatizatzeko esparru gisa, zeren dagoeneko aktiboki erabili da garapen prozesuetarako
  4. Hyper-V birtualizazio plataforma gisa. Istorioaren esparrutik haratago doazen hainbat arrazoi daude, baina laburbilduz: ezin ditugu hodeiak erabili, gure hardwarea erabili behar dugu.

30. eguna: Lehendik dauden hitzarmenak finkatzea - ​​Hitzarmenak Kode gisa

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Pila garbi zegoenean, mugimendurako prestaketak hasi ziren. Kode moduan dauden akordioak finkatzea (Hitzarmenak Kode gisa!). Trantsizioa eskuzko lana -> mekanizazioa -> automatizazioa.

1. Konfiguratu VM-ak

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Ansiblek lan handia egiten du horretan. Gutxieneko gorputz mugimenduekin VM konfigurazioen kontrola hartu dezakezu:

  1. Sortu git biltegi bat.
  2. VM-en zerrenda inbentarioan, konfigurazioak playbooketan eta rolak jartzen ditugu.
  3. Jenkins esklabo berezi bat konfiguratzen ari gara eta bertatik Ansible exekutatu dezakezu.
  4. Lan bat sortzen dugu eta Jenkins konfiguratzen dugu.

Lehen prozesua prest dago. Hitzarmenak finkoak dira.

2. Sortu VM berria

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Hemen dena ez zen oso erosoa. Ez da oso erosoa Linuxetik Hyper-V-en VM-ak sortzea. Prozesu hau mekanizatzeko saiakera bat izan zen:

  1. Ansbile WinRM bidez konektatzen da Windows ostalariarekin.
  2. Ansiblek powershell script bat exekutatzen du.
  3. Powershell script-ak VM berri bat sortzen du.
  4. Hyper-V/ScVMM erabiliz, sistema eragile gonbidatuan VM bat sortzean, ostalari-izena konfiguratzen da.
  5. DHCP errentamendua eguneratzean, VM-ak bere ostalari-izena bidaltzen du.
  6. Domeinu-kontrolatzailearen aldean ddns eta dhcp integrazio estandarrak DNS erregistroa konfiguratzen du.
  7. VM bat gehi dezakezu zure inbentarioan eta konfiguratu Ansible-rekin.

3.Sortu VM txantiloia

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Hemen ez zuten ezer asmatu - paketatzaile bat hartu zuten.

  1. Gehitu paketzailea, kickstart konfigurazioa git biltegian.
  2. Hyper-v eta Packer-ekin jenkins esklabo berezi bat konfiguratzea.
  3. Lan bat sortzen dugu eta Jenkins konfiguratzen dugu.

Esteka honek nola funtzionatzen duen:

  1. Packer-ek VM huts bat sortzen du eta ISOa jasotzen du.
  2. VM-k abiarazten du, Packer-ek komandoa sartzen du abio-kargatzailean gure kickstart fitxategia diskete batetik edo http-tik erabiltzeko.
  3. Anaconda gure konfigurazioarekin abiarazten da eta hasierako sistema eragilearen konfigurazioa eginda dago.
  4. Packer-ek VM-a erabilgarri egon arte itxaroten du.
  5. VM barruko Packer-ek modu lokalean ansible exekutatzen du.
  6. Ansiblek #1 urratsean lan egiten dituen rol berdinak erabiltzen ditu.
  7. Packer-ek VM txantiloia esportatzen du.

75. eguna: birfaktorea akordioa hautsi gabe = Test ansible + Testkitchen

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Baliteke konbentzioak kodean atzematea nahikoa ez izatea. Azken finean, prozesuaren barnean zerbait aldatu nahi baduzu, zerbait hautsi dezakezu. Beraz, azpiegituren kasuan, azpiegitura horren probak agertzen dira. Taldean ezagutzak sinkronizatzeko, Ansible rolak probatzen hasi ginen. Ez naiz sakonduko, zeren... garai horretako gertaerak deskribatzen dituen artikulu bat dago Probatu ahal duzun edo YML programatzaileek Ansible probatzea amesten al dute?(spoiler hau ez zen azken bertsioa eta geroago dena zaildu egin zen Nola hasi Ansible probatzen, proiektua urtebete barru birfaktorizatu eta ez erotu).

130. eguna: agian CentOS+ansible ez da beharrezkoa? agian txanda irekia?

Ulertu behar dugu azpiegiturak ezartzeko prozesua ez zela bakarra izan eta alboko azpiproiektuak egon zirela. Adibidez, gure aplikazioa txanda irekian abiarazteko eskaera bat etorri zen eta honek astebete baino gehiagoko ikerketa eragin zuen Aplikazioa Openshift-en abiarazten dugu eta dauden tresnak alderatzen ditugu horrek moteldu zuen mugimendu prozesua. Ondorioz, openshift-ek ez ditu behar guztiak estaltzen; benetako hardwarea behar duzu, edo gutxienez kernelarekin jolasteko gaitasuna.

170. eguna: Openshift ez da egokia, aprobetxa dezagun Windows Azure Pack-ekin?

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Hyper-V ez da oso atsegina, SCVMM-k ez du asko hobetzen. Baina Windows Azure Pack bezalako gauza bat dago, SCVMMren gehigarri bat dena eta Azure imitatzen duena. Baina, egia esan, produktuak abandonatuta dirudi: dokumentazioak loturak hautsi ditu eta oso urria da. Baina gure hodeiaren bizitza sinplifikatzeko aukeren azterketaren barruan, hori ere aztertu zuten.

250. eguna: Windows Azure Pack ez da oso ona. SCVMMn jarraitzen dugu

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Windows Azure Pack itxaropentsua zirudien, baina bere konplexutasunekin WAP sistemara ez ekartzea erabaki zen, alferrikako funtzioen mesedetan eta SCVMMrekin geratu zen.

360. eguna: Elefantea zatiz pieza jatea

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Handik urtebetera pasatzeko plataforma prest zegoen eta mugitzeko prozesua hasi zen. Horretarako, zeregin SMART bat ezarri zen. VM guztiak egiaztatu eta konfigurazioa banan-banan asmatzen hasi ginen, Ansible-n deskribatzen eta probekin estaltzen.

450. eguna: Zein sistema mota lortu duzu?

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Prozesua bera ez da interesgarria. Errutina da, konfigurazio gehienak nahiko sinpleak edo isomorfoak zirela eta Pareto printzipioaren arabera, VM konfigurazioen % 80ak denboraren % 20 behar zuen. Printzipio beraren arabera, denboraren % 80 mugimendua prestatzen eman zen eta % 20 bakarrik mugimenduan bertan.

540. eguna: finala

Ansible: 120 VM konfigurazioa CoreOSetik CentOSera migratzea 18 hilabetetan

Zer gertatu zen 18 hilabetean?

  1. Akordioak kode bihurtu ziren.
  2. Eskuzko lana -> Mekanizazioa -> automatizazioa.

Iturria: www.habr.com

Gehitu iruzkin berria