Thriller dwar it-twaqqif ta' servers mingħajr mirakli b'Immaniġġjar tal-Konfigurazzjoni

Kienet toqrob is-Sena l-Ġdida. It-tfal madwar il-pajjiż kollu kienu diġà bagħtu ittri lil Santa Klaws jew għamlu rigali għalihom infushom, u l-eżekutur ewlieni tagħhom, wieħed mill-bejjiegħa ewlenin, kien qed jipprepara għall-apoteosi tal-bejgħ. F'Diċembru, it-tagħbija fuq iċ-ċentru tad-dejta tagħha tiżdied bosta drabi. Għalhekk, il-kumpanija ddeċidiet li timmodernizza ċ-ċentru tad-dejta u tħaddem diversi għexieren ta 'servers ġodda minflok tagħmir li kien qed jasal fit-tmiem tal-ħajja tas-servizz tiegħu. Dan itemm ir-rakkont fl-isfond ta 'snowflakes li jdawwar, u jibda t-thriller.

Thriller dwar it-twaqqif ta' servers mingħajr mirakli b'Immaniġġjar tal-Konfigurazzjoni
It-tagħmir wasal fis-sit diversi xhur qabel il-quċċata tal-bejgħ. Is-servizz tal-operazzjonijiet, ovvjament, jaf kif u x'jikkonfigura fuq is-servers sabiex iġibhom fl-ambjent tal-produzzjoni. Imma kellna bżonn nawtomatizzaw dan u neliminaw il-fattur uman. Barra minn hekk, is-servers ġew sostitwiti qabel il-migrazzjoni ta 'sett ta' sistemi SAP li kienu kritiċi għall-kumpanija.

L-ikkummissjonar ta' servers ġodda kien strettament marbut ma' skadenza. U li tmexxiha fissret li tipperikola kemm il-vjeġġ ta’ biljun rigal kif ukoll il-migrazzjoni tas-sistemi. Anke tim magħmul minn Father Frost u Santa Claus ma setax ibiddel id-data - tista 'tittrasferixxi s-sistema SAP għall-ġestjoni tal-maħżen darba biss fis-sena. Mill-31 ta 'Diċembru sal-1 ta' Jannar, l-imħażen enormi tal-bejjiegħ bl-imnut, b'kollox id-daqs ta '20 grawnd tal-futbol, ​​iwaqqfu x-xogħol tagħhom għal 15-il siegħa. U dan huwa l-uniku perjodu ta 'żmien biex tiċċaqlaq is-sistema. Ma kellniex lok għal żball meta daħħalna s-servers.

Ħa nkun ċar: l-istorja tiegħi tirrifletti l-għodod u l-proċess tal-ġestjoni tal-konfigurazzjoni li juża t-tim tagħna.

Il-kumpless tal-ġestjoni tal-konfigurazzjoni jikkonsisti f'diversi livelli. Il-komponent ewlieni huwa s-sistema CMS. Fl-operazzjoni industrijali, in-nuqqas ta 'wieħed mill-livelli inevitabbilment iwassal għal mirakli spjaċevoli.

Ġestjoni tal-installazzjoni tal-OS

L-ewwel livell huwa sistema għall-ġestjoni tal-installazzjoni tas-sistemi operattivi fuq servers fiżiċi u virtwali. Joħloq konfigurazzjonijiet bażiċi tal-OS, li jelimina l-fattur uman.

Bl-użu ta 'din is-sistema, irċevejna istanzi standard ta' server b'OS adattati għal aktar awtomazzjoni. Matul il-"tferrigħ" huma rċevew sett minimu ta 'utenti lokali u ċwievet SSH pubbliċi, kif ukoll konfigurazzjoni OS konsistenti. Konna ggarantiti li namministraw is-servers permezz tas-CMS u konna żguri li ma kien hemm l-ebda sorpriża "taħt" fil-livell tal-OS.

Il-kompitu "massimu" għas-sistema ta 'ġestjoni tal-installazzjoni huwa li awtomatikament jiġi kkonfigurat servers mil-livell tal-BIOS/Firmware sal-OS. Ħafna hawn jiddependi fuq it-tagħmir u l-kompiti tas-setup. Għal tagħmir eteroġenju, tista 'tikkunsidra API REDFISH. Jekk il-hardware kollu huwa minn bejjiegħ wieħed, allura ħafna drabi jkun aktar konvenjenti li tuża għodod ta 'ġestjoni lesti (per eżempju, HP ILO Amplifier, DELL OpenManage, eċċ.).

Biex tinstalla l-OS fuq servers fiżiċi, użajna l-Cobbler magħruf, li jiddefinixxi sett ta 'profili ta' installazzjoni miftiehma mas-servizz ta 'operazzjoni. Meta żżid server ġdid mal-infrastruttura, l-inġinier rabat l-indirizz MAC tas-server mal-profil meħtieġ f'Cobbler. Meta booting fuq in-netwerk għall-ewwel darba, is-server irċieva indirizz temporanju u OS ġdid. Imbagħad ġie trasferit għall-indirizz VLAN/IP fil-mira u kompla x-xogħol hemmhekk. Iva, it-tibdil tal-VLAN jieħu ż-żmien u jeħtieġ koordinazzjoni, iżda jipprovdi protezzjoni addizzjonali kontra l-installazzjoni aċċidentali tas-server f'ambjent ta 'produzzjoni.

Ħloqna servers virtwali bbażati fuq mudelli ppreparati bl-użu ta 'HashiСorp Packer. Ir-raġuni kienet l-istess: biex tevita żbalji umani possibbli meta tinstalla l-OS. Iżda, b'differenza mis-servers fiżiċi, Packer jelimina l-ħtieġa għal PXE, booting tan-netwerk, u bidliet VLAN. Dan għamilha aktar faċli u sempliċi biex jinħolqu servers virtwali.

Thriller dwar it-twaqqif ta' servers mingħajr mirakli b'Immaniġġjar tal-Konfigurazzjoni
Ross. 1. Ġestjoni tal-installazzjoni ta 'sistemi operattivi.

Ġestjoni tas-sigrieti

Kwalunkwe sistema ta 'ġestjoni tal-konfigurazzjoni fiha dejta li għandha tkun moħbija mill-utenti ordinarji, iżda hija meħtieġa biex jitħejjew is-sistemi. Dawn huma passwords għal utenti lokali u kontijiet tas-servizz, ċwievet taċ-ċertifikati, diversi Tokens tal-API, eċċ. Normalment jissejħu "sigrieti."

Jekk ma tiddeterminax mill-bidu nett fejn u kif taħżen dawn is-sigrieti, allura, skont l-istrettezza tar-rekwiżiti tas-sigurtà tal-informazzjoni, huma probabbli l-metodi ta 'ħażna li ġejjin:

  • direttament fil-kodiċi tal-kontroll tal-konfigurazzjoni jew fil-fajls fir-repożitorju;
  • f'għodod speċjalizzati għall-ġestjoni tal-konfigurazzjoni (pereżempju, Ansible Vault);
  • f'sistemi CI/CD (Jenkins/TeamCity/GitLab/eċċ.) jew f'sistemi ta' ġestjoni tal-konfigurazzjoni (Ansible Tower/Ansible AWX);
  • sigrieti jistgħu wkoll jiġu trasferiti "manwalment". Pereżempju, huma mqiegħda f'post speċifikat, u mbagħad jintużaw minn sistemi ta 'ġestjoni tal-konfigurazzjoni;
  • diversi kombinazzjonijiet ta 'hawn fuq.

Kull metodu għandu l-iżvantaġġi tiegħu stess. Il-wieħed ewlieni huwa n-nuqqas ta 'politiki għall-aċċess għas-sigrieti: huwa impossibbli jew diffiċli li jiġi ddeterminat min jista' juża ċerti sigrieti. Żvantaġġ ieħor huwa n-nuqqas ta 'verifika ta' aċċess u ċiklu tal-ħajja sħiħ. Kif tissostitwixxi malajr, pereżempju, ċavetta pubblika li hija miktuba fil-kodiċi u f'numru ta 'sistemi relatati?

Aħna użajna l-ħażna sigrieta ċentralizzata HashiCorp Vault. Dan ippermettilna:

  • żomm is-sigrieti sikuri. Huma encrypted, u anki jekk xi ħadd jikseb aċċess għad-database tal-Vault (pereżempju, billi jirrestawraha minn backup), ma jkunx jista 'jaqra s-sigrieti maħżuna hemmhekk;
  • torganizza politiki għall-aċċess għas-sigrieti. Is-sigrieti "allokati" lilhom biss huma disponibbli għall-utenti u l-applikazzjonijiet;
  • aċċess għall-verifika għas-sigrieti. Kwalunkwe azzjoni b'sigrieti tiġi rreġistrata fir-reġistru tal-verifika tal-Vault;
  • torganizza "ċiklu tal-ħajja" sħiħ ta 'ħidma b'sigrieti. Jistgħu jinħolqu, jiġu revokati, jiġu stabbiliti data ta’ skadenza, eċċ.
  • faċli biex tintegra ma 'sistemi oħra li jeħtieġu aċċess għal sigrieti;
  • u tuża wkoll kriptaġġ minn tarf sa tarf, passwords ta 'darba għall-OS u database, ċertifikati ta' ċentri awtorizzati, eċċ.

Issa ejja ngħaddu għas-sistema ċentrali ta' awtentikazzjoni u awtorizzazzjoni. Kien possibbli li wieħed jgħaddi mingħajrha, iżda l-amministrazzjoni ta 'utenti f'ħafna sistemi relatati hija wisq mhux trivjali. Aħna kkonfigurajna l-awtentikazzjoni u l-awtorizzazzjoni permezz tas-servizz LDAP. Inkella, Vault ikollu kontinwament joħroġ u jżomm kont tat-tokens ta 'awtentikazzjoni għall-utenti. U t-tħassir u ż-żieda ta’ utenti tinbidel f’tfittxija “ħloqt/ħassejt dan il-kont tal-utent kullimkien?”

Aħna nżidu livell ieħor mas-sistema tagħna: ġestjoni tas-sigrieti u awtentikazzjoni/awtorizzazzjoni ċentrali:

Thriller dwar it-twaqqif ta' servers mingħajr mirakli b'Immaniġġjar tal-Konfigurazzjoni
Ross. 2. Ġestjoni tas-sigrieti.

Ġestjoni tal-konfigurazzjoni

Wasalna fil-qalba - is-sistema CMS. Fil-każ tagħna, din hija taħlita ta 'Ansible u Red Hat Ansible AWX.

Minflok Ansible, Chef, Puppet, SaltStack jistgħu jintużaw. Aħna għażilna Ansible abbażi ta' diversi kriterji.

  • L-ewwelnett, hija l-versatilità. Sett ta 'moduli lesti għall-kontroll huwa impressjonanti. U jekk m'għandekx biżżejjed minnu, tista 'tfittex fuq GitHub u Galaxy.
  • It-tieni nett, m'hemmx bżonn li jiġu installati u appoġġjati aġenti fuq tagħmir ġestit, jipprova li ma jinterferixxux mat-tagħbija, u jikkonferma n-nuqqas ta '"bookmarks".
  • It-tielet, Ansible għandu ostaklu baxx għad-dħul. Inġinier kompetenti se jikteb playbook tax-xogħol litteralment fl-ewwel jum ta 'ħidma mal-prodott.

Iżda Ansible waħdu f'ambjent ta 'produzzjoni ma kienx biżżejjed għalina. Inkella, jinqalgħu ħafna problemi bir-restrizzjoni tal-aċċess u l-verifika tal-azzjonijiet tal-amministraturi. Kif tirrestrinġi l-aċċess? Wara kollox, kien meħtieġ li kull dipartiment jimmaniġġja (aqra: imexxi l-playbook Ansible) is-sett ta 'servers "tagħha". Kif tippermetti lil ċerti impjegati biss imexxu playbooks speċifiċi ta' Ansible? Jew kif issegwi min nieda l-playbook mingħajr ma twaqqaf ħafna għarfien lokali fuq servers u tagħmir li jaħdem Ansible?

Is-sehem tal-iljun ta' kwistjonijiet bħal dawn huwa solvut minn Red Hat Torri Ansible, jew il-proġett upstream open-source tiegħu Ansible AWX. Huwa għalhekk li ppreferajna għall-klijent.

U touch ieħor għar-ritratt tas-sistema CMS tagħna. Il-playbook Ansible għandu jinħażen f'sistemi ta' ġestjoni tar-repożitorji tal-kodiċi. Għandna dan GitLab CE.

Għalhekk, il-konfigurazzjonijiet infushom huma ġestiti minn taħlita ta 'Ansible/Ansible AWX/GitLab (ara Fig. 3). Naturalment, AWX/GitLab huwa integrat ma 'sistema ta' awtentikazzjoni waħda, u Ansible playbook huwa integrat ma 'HashiCorp Vault. Konfigurazzjonijiet jidħlu fl-ambjent ta 'produzzjoni biss permezz ta' Ansible AWX, li fih ir-"regoli tal-logħba" kollha huma speċifikati: min jista 'jikkonfigura xiex, fejn tikseb il-kodiċi ta' ġestjoni tal-konfigurazzjoni għas-CMS, eċċ.

Thriller dwar it-twaqqif ta' servers mingħajr mirakli b'Immaniġġjar tal-Konfigurazzjoni
Ross. 3. Ġestjoni tal-konfigurazzjoni.

Ġestjoni tat-test

Il-konfigurazzjoni tagħna hija ppreżentata f'forma ta 'kodiċi. Għalhekk, aħna sfurzati nilagħbu bl-istess regoli bħall-iżviluppaturi tas-softwer. Kellna norganizzaw il-proċessi ta 'żvilupp, ittestjar kontinwu, kunsinna u applikazzjoni ta' kodiċi ta 'konfigurazzjoni għal servers ta' produzzjoni.

Jekk dan ma jsirx immedjatament, allura r-rwoli miktuba għall-konfigurazzjoni jew jieqfu milli jiġu appoġġjati u modifikati, jew ma jibqgħux jiġu mnedija fil-produzzjoni. Il-kura għal dan l-uġigħ hija magħrufa, u wriet ruħha f'dan il-proġett:

  • kull rwol huwa kopert minn testijiet unitarji;
  • it-testijiet jitmexxew awtomatikament kull meta jkun hemm xi bidla fil-kodiċi li timmaniġġja l-konfigurazzjonijiet;
  • bidliet fil-kodiċi ta 'ġestjoni tal-konfigurazzjoni huma rilaxxati fl-ambjent tal-produzzjoni biss wara li jgħaddu b'suċċess it-testijiet kollha u r-reviżjoni tal-kodiċi.

L-iżvilupp tal-kodiċi u l-ġestjoni tal-konfigurazzjoni saru aktar kalmi u aktar prevedibbli. Biex norganizzaw ttestjar kontinwu, użajna l-GitLab CI/CD toolkit, u ħadna Molekula Ansible.

Kull meta jkun hemm bidla fil-kodiċi tal-ġestjoni tal-konfigurazzjoni, GitLab CI/CD isejjaħ Molecule:

  • jiċċekkja s-sintassi tal-kodiċi,
  • jgħolli l-kontenitur Docker,
  • japplika l-kodiċi modifikat għall-kontenitur maħluq,
  • jiċċekkja r-rwol għall-idempotenza u jwettaq testijiet għal dan il-kodiċi (il-granularità hawnhekk hija fil-livell tar-rwol ansible, ara Fig. 4).

Aħna kkunsinnajna konfigurazzjonijiet lill-ambjent tal-produzzjoni bl-użu ta 'Ansible AWX. L-inġiniera tal-operazzjonijiet applikaw bidliet fil-konfigurazzjoni permezz ta' mudelli predefiniti. AWX indipendentement "talbet" l-aħħar verżjoni tal-kodiċi mill-fergħa kaptan tal-GitLab kull darba li ntuża. B'dan il-mod eskludejna l-użu ta 'kodiċi mhux ittestjat jew skadut fl-ambjent tal-produzzjoni. Naturalment, il-kodiċi daħal fil-fergħa prinċipali biss wara l-ittestjar, ir-reviżjoni u l-approvazzjoni.

Thriller dwar it-twaqqif ta' servers mingħajr mirakli b'Immaniġġjar tal-Konfigurazzjoni
Ross. 4. Ittestjar awtomatiku tar-rwoli f'GitLab CI/CD.

Hemm ukoll problema assoċjata mat-tħaddim tas-sistemi tal-produzzjoni. Fil-ħajja reali, huwa diffiċli ħafna li tagħmel bidliet fil-konfigurazzjoni permezz tal-kodiċi CMS biss. Sitwazzjonijiet ta 'emerġenza jinqalgħu meta inġinier irid ibiddel il-konfigurazzjoni "hawn u issa", mingħajr ma jistenna l-editjar tal-kodiċi, l-ittestjar, l-approvazzjoni, eċċ.

Bħala riżultat, minħabba bidliet manwali, jidhru diskrepanzi fil-konfigurazzjoni fuq l-istess tip ta 'tagħmir (pereżempju, is-settings tas-sysctl huma kkonfigurati b'mod differenti fuq in-nodi tal-cluster HA). Jew il-konfigurazzjoni attwali fuq it-tagħmir tvarja minn dik speċifikata fil-kodiċi CMS.

Għalhekk, minbarra l-ittestjar kontinwu, aħna niċċekkjaw l-ambjenti tal-produzzjoni għal diskrepanzi fil-konfigurazzjoni. Għażilna l-iktar għażla sempliċi: tħaddem il-kodiċi tal-konfigurazzjoni tas-CMS fil-modalità "dry run", jiġifieri mingħajr ma napplikaw bidliet, iżda b'notifika tad-diskrepanzi kollha bejn il-konfigurazzjoni ppjanata u attwali. Implimentajna dan billi perjodikament inħaddmu l-playbooks kollha ta 'Ansible bl-għażla "—check" fuq is-servers tal-produzzjoni. Bħal dejjem, Ansible AWX huwa responsabbli għat-tnedija u biex iżżomm il-playbook aġġornat (ara Fig. 5):

Thriller dwar it-twaqqif ta' servers mingħajr mirakli b'Immaniġġjar tal-Konfigurazzjoni
Ross. 5. Kontrolli għal diskrepanzi fil-konfigurazzjoni f'Ansible AWX.

Wara l-kontrolli, AWX jibgħat rapport ta 'diskrepanza lill-amministraturi. Jistudjaw il-konfigurazzjoni problematika u mbagħad jiffissawha permezz ta 'playbooks aġġustati. Dan huwa kif inżommu l-konfigurazzjoni fl-ambjent tal-produzzjoni u s-CMS huwa dejjem aġġornat u sinkronizzat. Dan jelimina "mirakli" spjaċevoli meta l-kodiċi CMS jintuża fuq servers ta '"produzzjoni".

Issa għandna saff ta 'ttestjar importanti li jikkonsisti minn Ansible AWX/GitLab/Molecule (Figura 6).

Thriller dwar it-twaqqif ta' servers mingħajr mirakli b'Immaniġġjar tal-Konfigurazzjoni
Ross. 6. Ġestjoni tat-test.

Diffiċli? Jien ma nargumentax. Iżda kumpless bħal dan ta 'ġestjoni tal-konfigurazzjoni sar tweġiba komprensiva għal ħafna mistoqsijiet relatati mal-awtomazzjoni tal-konfigurazzjoni tas-server. Issa s-servers standard ta' bejjiegħ bl-imnut dejjem għandhom konfigurazzjoni strettament definita. CMS, kuntrarjament għal inġinier, mhux se jinsa li jżid is-settings meħtieġa, joħloq utenti u jwettaq għexieren jew mijiet ta 'settings meħtieġa.

M'hemm l-ebda "għarfien sigriet" fis-settings tas-servers u l-ambjenti llum. Il-karatteristiċi kollha meħtieġa huma riflessi fil-playbook. Ebda aktar kreattività u struzzjonijiet vagi: "Installaha bħal Oracle regolari, iżda trid tispeċifika ftit settings sysctl u żżid utenti bl-UID meħtieġ. Staqsi lill-guys fl-operazzjoni, jafu".

Il-ħila li tiskopri diskrepanzi fil-konfigurazzjoni u tikkoreġihom b'mod proattiv tipprovdi serħan tal-moħħ. Mingħajr sistema ta 'ġestjoni tal-konfigurazzjoni, dan ġeneralment jidher differenti. Il-problemi jakkumulaw sakemm ġurnata waħda "sparaw" fil-produzzjoni. Imbagħad isir debriefing, il-konfigurazzjonijiet jiġu kkontrollati u kkoreġuti. U ċ-ċiklu jerġa’ jirrepeti

U ovvjament, aċċellejna t-tnedija tas-servers fl-operat minn diversi jiem għal sigħat.

Ukoll, lejlet l-Ewwel tas-Sena stess, meta t-tfal kienu bil-ferħ jiftħu r-rigali u l-adulti kienu qed jagħmlu x-xewqat hekk kif laqat iċ-ċrieki, l-inġiniera tagħna emigraw is-sistema SAP għal servers ġodda. Anke Santa Klaws jgħid li l-aqwa mirakli huma dawk li huma ppreparati tajjeb.

PS It-tim tagħna ta 'spiss jiltaqa' mal-fatt li l-klijenti jridu jsolvu problemi ta 'ġestjoni tal-konfigurazzjoni bl-aktar mod sempliċi possibbli. Idealment, bħallikieku bil-maġija - b'għodda waħda. Iżda fil-ħajja kollox huwa aktar ikkumplikat (iva, balal tal-fidda ma reġgħux ingħataw): trid toħloq proċess sħiħ billi tuża għodod li huma konvenjenti għat-tim tal-klijent.

Awtur: Sergey Artemov, perit tad-dipartiment Soluzzjonijiet DevOps "Jet Infosystems"

Sors: www.habr.com

Żid kumment