Usa ka thriller bahin sa pag-set up sa mga server nga wala’y milagro sa Pagdumala sa Pag-configure

Nagsingabot na ang Bag-ong Tuig. Ang mga bata sa tibuok nasod nagpadala na ug mga sulat ngadto kang Santa Claus o naghimog mga regalo para sa ilang kaugalingon, ug ang ilang nag-unang tigpatuman, usa sa dagkong mga tigbaligya, nangandam alang sa apotheosis sa mga halin. Sa Disyembre, ang load sa iyang data center misaka sa daghang mga higayon. Busa, nakahukom ang kompanya nga i-modernize ang data center ug ipatuman ang daghang dosena nga bag-ong mga server imbes nga mga kagamitan nga hapit na matapos ang serbisyo sa kinabuhi niini. Gitapos niini ang istorya batok sa backdrop sa nagtuyok nga mga snowflake, ug nagsugod ang thriller.

Usa ka thriller bahin sa pag-set up sa mga server nga wala’y milagro sa Pagdumala sa Pag-configure
Ang mga ekipo niabot sa site pipila ka bulan sa wala pa ang kinatas-an sa halin. Ang serbisyo sa operasyon, siyempre, nahibal-an kung giunsa ug kung unsa ang i-configure sa mga server aron madala sila sa palibot sa produksiyon. Apan kinahanglan namon nga i-automate kini ug wagtangon ang hinungdan sa tawo. Dugang pa, ang mga server gipulihan sa wala pa ang paglalin sa usa ka hugpong sa mga sistema sa SAP nga kritikal alang sa kompanya.

Ang pag-komisyon sa bag-ong mga server hugot nga gihigot sa usa ka deadline. Ug ang paglihok niini nagpasabut nga mabutang sa peligro ang pagpadala sa usa ka bilyon nga mga regalo ug ang paglalin sa mga sistema. Bisan ang usa ka team nga gilangkuban ni Padre Frost ug Santa Claus dili makausab sa petsa - mahimo nimong ibalhin ang sistema sa SAP alang sa pagdumala sa bodega kausa sa usa ka tuig. Gikan sa Disyembre 31 hangtod sa Enero 1, ang dagkong mga bodega sa retailer, sa kinatibuk-ang gidak-on sa 20 ka football field, mihunong sa ilang trabaho sulod sa 15 ka oras. Ug kini ra ang yugto sa panahon alang sa paglihok sa sistema. Wala kami lugar alang sa sayup sa pagpaila sa mga server.

Klarohon nako: ang akong istorya nagpakita sa mga himan ug proseso sa pagdumala sa configuration nga gigamit sa among team.

Ang komplikado sa pagdumala sa pagsumpo naglangkob sa daghang lebel. Ang yawe nga bahin mao ang CMS nga sistema. Sa industriyal nga operasyon, ang pagkawala sa usa sa mga lebel dili kalikayan nga mosangpot sa dili maayo nga mga milagro.

Pagdumala sa pag-install sa OS

Ang una nga lebel usa ka sistema alang sa pagdumala sa pag-install sa mga operating system sa pisikal ug virtual nga mga server. Naghimo kini mga sukaranan nga mga pag-configure sa OS, nga giwagtang ang hinungdan sa tawo.

Gamit kini nga sistema, nakadawat kami og standard server instances nga adunay OS nga angay alang sa dugang nga automation. Atol sa "pagbubo" nakadawat sila usa ka minimum nga set sa lokal nga tiggamit ug publiko nga mga yawe sa SSH, ingon man usa ka makanunayon nga pagsumpo sa OS. Mahimo kaming garantiya nga madumala ang mga server pinaagi sa CMS ug sigurado nga wala’y mga sorpresa "sa ubos" sa lebel sa OS.

Ang "maximum" nga buluhaton alang sa sistema sa pagdumala sa pag-install mao ang awtomatikong pag-configure sa mga server gikan sa lebel sa BIOS/Firmware hangtod sa OS. Daghan dinhi nagdepende sa kagamitan ug mga buluhaton sa pag-setup. Alang sa heterogeneous nga kagamitan, mahimo nimong ikonsiderar REDFISH API. Kung ang tanan nga hardware gikan sa usa ka vendor, nan mas sayon ​​​​ang paggamit sa andam nga mga himan sa pagdumala (pananglitan, HP ILO Amplifier, DELL OpenManage, ug uban pa).

Aron ma-install ang OS sa mga pisikal nga server, gigamit namon ang bantog nga Cobbler, nga naghubit sa usa ka hugpong sa mga profile sa pag-install nga giuyonan sa serbisyo sa operasyon. Kung nagdugang usa ka bag-ong server sa imprastraktura, gihigot sa engineer ang MAC address sa server sa kinahanglan nga profile sa Cobbler. Kung nag-boot sa network sa unang higayon, ang server nakadawat usa ka temporaryo nga adres ug usa ka bag-ong OS. Dayon kini gibalhin ngadto sa target nga VLAN/IP addressing ug nagpadayon sa pagtrabaho didto. Oo, ang pagbag-o sa VLAN nagkinahanglag oras ug nanginahanglan koordinasyon, apan naghatag kini dugang nga proteksyon batok sa aksidente nga pag-install sa server sa usa ka palibot sa produksiyon.

Naghimo kami og mga virtual server base sa mga templates nga giandam gamit ang HashiСorp Packer. Ang hinungdan mao ang parehas: aron malikayan ang posible nga mga sayup sa tawo kung gi-install ang OS. Apan, dili sama sa pisikal nga mga server, ang Packer nagwagtang sa panginahanglan alang sa PXE, network booting, ug mga kausaban sa VLAN. Gipasayon ​​niini ug gipasayon ​​ang paghimo og mga virtual server.

Usa ka thriller bahin sa pag-set up sa mga server nga wala’y milagro sa Pagdumala sa Pag-configure
bugas. 1. Pagdumala sa pag-instalar sa mga operating system.

Pagdumala sa mga sekreto

Ang bisan unsang sistema sa pagdumala sa pagsumpo adunay mga datos nga kinahanglan itago gikan sa ordinaryong mga tiggamit, apan gikinahanglan aron maandam ang mga sistema. Kini ang mga password alang sa mga lokal nga tiggamit ug mga account sa serbisyo, mga yawe sa sertipiko, lainlaing mga Token sa API, ug uban pa. Kasagaran kini gitawag nga "mga sekreto."

Kung dili nimo mahibal-an gikan sa sinugdanan kung diin ug kung giunsa pagtipig kini nga mga sekreto, nan, depende sa kagrabe sa mga kinahanglanon sa seguridad sa kasayuran, lagmit ang mga mosunud nga pamaagi sa pagtipig:

  • direkta sa configuration control code o sa mga file sa repository;
  • sa espesyal nga mga himan sa pagdumala sa configuration (pananglitan, Ansible Vault);
  • sa CI/CD system (Jenkins/TeamCity/GitLab/etc.) o sa configuration management systems (Ansible Tower/Ansible AWX);
  • ang mga sekreto mahimo usab nga ibalhin "manual". Pananglitan, kini gibutang sa usa ka piho nga lokasyon, ug unya kini gigamit sa mga sistema sa pagdumala sa pag-configure;
  • nagkalain-laing mga kombinasyon sa ibabaw.

Ang matag pamaagi adunay kaugalingon nga mga disbentaha. Ang panguna mao ang kakulang sa mga palisiya alang sa pag-access sa mga sekreto: imposible o lisud ang pagtino kung kinsa ang makagamit sa pipila nga mga sekreto. Ang laing disbentaha mao ang kakulang sa access auditing ug usa ka bug-os nga siklo sa kinabuhi. Giunsa ang dali nga pag-ilis, pananglitan, usa ka publiko nga yawe nga gisulat sa code ug sa daghang mga may kalabutan nga sistema?

Gigamit namo ang sentralisadong sekreto nga pagtipig nga HashiCorp Vault. Kini nagtugot kanamo:

  • itago ang mga sekreto nga luwas. Gi-encrypt sila, ug bisan kung adunay maka-access sa database sa Vault (pananglitan, pinaagi sa pag-uli niini gikan sa usa ka backup), dili nila mabasa ang mga sekreto nga gitipigan didto;
  • pag-organisar sa mga palisiya alang sa pag-access sa mga sekreto. Ang mga sekreto lamang nga "gigahin" kanila ang magamit sa mga tiggamit ug mga aplikasyon;
  • pag-audit sa pag-access sa mga sekreto. Ang bisan unsang mga aksyon nga adunay mga sekreto girekord sa Vault audit log;
  • pag-organisar sa usa ka bug-os nga "siklo sa kinabuhi" sa pagtrabaho sa mga sekreto. Mahimo kini nga buhaton, bawion, magtakda og petsa sa pag-expire, ug uban pa.
  • sayon ​​​​nga i-integrate sa ubang mga sistema nga nagkinahanglan og access sa mga sekreto;
  • ug gamiton usab ang end-to-end encryption, one-time nga mga password para sa OS ug database, mga sertipiko sa awtorisado nga mga sentro, ug uban pa.

Karon magpadayon kita ngadto sa sentral nga authentication ug authorization system. Posible nga buhaton kung wala kini, apan ang pagdumala sa mga tiggamit sa daghang mga may kalabutan nga sistema dili kaayo hinungdanon. Among gi-configure ang pag-authenticate ug pagtugot pinaagi sa serbisyo sa LDAP. Kung dili, ang Vault kinahanglan nga magpadayon sa pag-isyu ug pagsubay sa mga token sa panghimatuud alang sa mga tiggamit. Ug ang pagtangtang ug pagdugang sa mga tiggamit mahimong usa ka pagpangita "nahimo ba nako / gitangtang kini nga account sa gumagamit bisan diin?"

Nagdugang kami og laing lebel sa among sistema: pagdumala sa mga sekreto ug sentral nga pag-authenticate/awtorisasyon:

Usa ka thriller bahin sa pag-set up sa mga server nga wala’y milagro sa Pagdumala sa Pag-configure
bugas. 2. Pagdumala sa mga sekreto.

Pagdumala sa pag-configure

Nakaabot kami sa kinauyokan - ang sistema sa CMS. Sa among kaso, kini usa ka kombinasyon sa Ansible ug Red Hat Ansible AWX.

Imbes nga Ansible, Chef, Puppet, SaltStack mahimong gamiton. Gipili namo ang Ansible base sa daghang mga criteria.

  • Una, kini mao ang versatility. Usa ka hugpong sa andam nga mga module alang sa pagkontrol kini impresibo. Ug kung wala ka igo niini, mahimo nimong pangitaon ang GitHub ug Galaxy.
  • Ikaduha, dili kinahanglan nga i-install ug suportahan ang mga ahente sa pagdumala nga kagamitan, pamatud-an nga wala sila makabalda sa pagkarga, ug kumpirmahi ang pagkawala sa "mga bookmark".
  • Ikatulo, ang Ansible adunay gamay nga babag sa pagsulod. Ang usa ka takos nga inhenyero mosulat sa usa ka working playbook nga literal sa unang adlaw sa pagtrabaho sa produkto.

Apan ang Ansible nga nag-inusara sa usa ka palibot sa produksiyon dili igo alang kanamo. Kung dili, daghang mga problema ang motumaw sa pagpugong sa pag-access ug pag-awdit sa mga aksyon sa mga administrador. Unsaon pagpugong sa pag-access? Human sa tanan, gikinahanglan alang sa matag departamento sa pagdumala (basaha: pagdagan ang Ansible playbook) "sa kaugalingon" nga set sa mga server. Giunsa pagtugot ang pipila ra nga mga empleyado nga magpadagan sa piho nga mga playbook nga Ansible? O kung giunsa pagsubay kung kinsa ang naglansad sa playbook nga wala magbutang daghang lokal nga kahibalo sa mga server ug kagamitan nga nagdagan sa Ansible?

Ang dakong bahin sa maong mga isyu gisulbad sa Red Hat Ansible Tower, o ang iyang open-source upstream nga proyekto Mahimong AWX. Mao nga gipili namon kini alang sa kustomer.

Ug usa pa ka paghikap sa hulagway sa among CMS system. Ang mahimo nga playbook kinahanglan nga tipigan sa code repository management system. Naa mi GitLab CE.

Busa, ang mga pag-configure mismo gidumala pinaagi sa kombinasyon sa Ansible/Ansible AWX/GitLab (tan-awa ang Fig. 3). Siyempre, ang AWX/GitLab gisagol sa usa ka sistema sa pag-authenticate, ug ang Ansible playbook gisagol sa HashiCorp Vault. Ang mga pag-configure mosulod sa palibot sa produksiyon pinaagi lamang sa Ansible AWX, diin ang tanan nga "mga lagda sa dula" gipiho: kinsa ang maka-configure kung unsa, kung diin makuha ang code sa pagdumala sa pag-configure alang sa CMS, ug uban pa.

Usa ka thriller bahin sa pag-set up sa mga server nga wala’y milagro sa Pagdumala sa Pag-configure
bugas. 3. Pagdumala sa configuration.

Pagdumala sa pagsulay

Ang among configuration gipresentar sa code form. Busa, napugos kami sa pagdula sa parehas nga mga lagda sama sa mga developer sa software. Kinahanglan namon nga organisahon ang mga proseso sa pag-uswag, padayon nga pagsulay, paghatud ug aplikasyon sa code sa pag-configure sa mga server sa produksiyon.

Kung dili kini buhaton dayon, nan ang mga tahas nga gisulat alang sa pag-configure mahimong mohunong sa pagsuporta ug pagbag-o, o mohunong sa paglansad sa produksiyon. Ang tambal alang niini nga kasakit nahibal-an, ug kini napamatud-an sa kaugalingon niini nga proyekto:

  • matag tahas gisakop sa mga pagsulay sa yunit;
  • Ang mga pagsulay awtomatik nga gipadagan kung adunay bisan unsang pagbag-o sa code nga nagdumala sa mga pag-configure;
  • Ang mga pagbag-o sa kodigo sa pagdumala sa pagsumpo gibuhian sa palibot sa produksiyon pagkahuman nga malampuson nga nakapasar sa tanan nga mga pagsulay ug pagrepaso sa code.

Ang pagpalambo sa code ug pagdumala sa configuration nahimong mas kalmado ug mas matag-an. Aron maorganisar ang padayon nga pagsulay, among gigamit ang GitLab CI/CD toolkit, ug gikuha Ansible nga Molecule.

Sa matag higayon nga adunay pagbag-o sa kodigo sa pagdumala sa pagsumpo, ang GitLab CI/CD nagtawag sa Molecule:

  • gisusi niini ang code syntax,
  • gipataas ang sudlanan sa Docker,
  • magamit ang giusab nga code sa gibuhat nga sudlanan,
  • nagsusi sa papel alang sa idempotency ug nagpadagan sa mga pagsulay alang niini nga code (ang granularity dinhi anaa sa ansible nga lebel sa papel, tan-awa ang Fig. 4).

Nagdala kami og mga configuration sa palibot sa produksiyon gamit ang Ansible AWX. Ang mga inhenyero sa operasyon nagpadapat sa mga pagbag-o sa pag-configure pinaagi sa gitakda nang daan nga mga template. Ang AWX independente nga "nangayo" sa pinakabag-o nga bersyon sa code gikan sa GitLab master branch matag higayon nga kini gigamit. Niining paagiha wala namo iapil ang paggamit sa wala pa masulayan o karaan nga code sa palibot sa produksiyon. Natural lang, ang code misulod sa master branch lamang human sa pagsulay, pagrepaso ug pag-apruba.

Usa ka thriller bahin sa pag-set up sa mga server nga wala’y milagro sa Pagdumala sa Pag-configure
bugas. 4. Awtomatikong pagsulay sa mga tahas sa GitLab CI/CD.

Adunay usab usa ka problema nga nalangkit sa operasyon sa mga sistema sa produksiyon. Sa tinuud nga kinabuhi, lisud kaayo ang paghimo sa mga pagbag-o sa pag-configure pinaagi sa CMS code nga nag-inusara. Ang mga sitwasyon sa emerhensya mitungha kung ang usa ka inhenyero kinahanglan nga magbag-o sa pagsumpo "dinhi ug karon", nga wala maghulat sa pag-edit sa code, pagsulay, pag-apruba, ug uban pa.

Ingon usa ka sangputanan, tungod sa manwal nga mga pagbag-o, ang mga kalainan makita sa pag-configure sa parehas nga tipo sa kagamitan (pananglitan, ang mga setting sa sysctl lahi nga gi-configure sa mga node sa cluster sa HA). O ang aktuwal nga configuration sa mga ekipo lahi sa usa nga gipiho sa CMS code.

Busa, dugang sa padayon nga pagsulay, among gisusi ang mga palibot sa produksiyon alang sa mga kalainan sa pagsumpo. Gipili namo ang pinakasimple nga kapilian: pagpadagan sa CMS configuration code sa "dry run" mode, nga mao, nga walay pag-apply sa mga pagbag-o, apan uban ang pagpahibalo sa tanan nga mga kalainan tali sa giplano ug aktwal nga configuration. Among gipatuman kini pinaagi sa pagpadagan matag karon ug unya sa tanang Ansible nga playbook nga adunay opsyon nga “—check” sa mga production server. Sama sa kanunay, ang Ansible AWX ang responsable sa paglansad ug pagpadayon sa playbook hangtod sa petsa (tan-awa ang Fig. 5):

Usa ka thriller bahin sa pag-set up sa mga server nga wala’y milagro sa Pagdumala sa Pag-configure
bugas. 5. Pagsusi sa mga kalainan sa configuration sa Ansible AWX.

Pagkahuman sa mga pagsusi, ang AWX nagpadala usa ka taho sa kalainan sa mga tagdumala. Gitun-an nila ang problema nga pag-configure ug dayon ayohon kini pinaagi sa gipahiangay nga mga playbook. Mao kini ang paagi nga among gipadayon ang pagsumpo sa palibot sa produksiyon ug ang CMS kanunay nga labing bag-o ug gi-synchronize. Kini nagwagtang sa dili maayo nga "mga milagro" kung ang CMS code gigamit sa "produksyon" nga mga server.

Naa na miy importanteng testing layer nga naglangkob sa Ansible AWX/GitLab/Molecule (Figure 6).

Usa ka thriller bahin sa pag-set up sa mga server nga wala’y milagro sa Pagdumala sa Pag-configure
bugas. 6. Pagdumala sa pagsulay.

Lisod? Dili ko makiglalis. Apan ang ingon nga komplikado sa pagdumala sa pagsumpo nahimo nga usa ka komprehensibo nga tubag sa daghang mga pangutana nga may kalabutan sa pag-automate sa pagsumpo sa server. Karon ang standard nga mga server sa retailer kanunay adunay estrikto nga gihubit nga configuration. Ang CMS, dili sama sa usa ka inhenyero, dili makalimot sa pagdugang sa gikinahanglan nga mga setting, paghimo sa mga tiggamit ug paghimo sa mga dosena o gatusan nga gikinahanglan nga mga setting.

Walay "tinago nga kahibalo" sa mga setting sa mga server ug mga palibot karon. Ang tanan nga gikinahanglan nga mga bahin makita sa playbook. Wala nay pagkamamugnaon ug dili klaro nga mga panudlo: "I-install kini sama sa regular nga Oracle, apan kinahanglan nimo nga ipiho ang usa ka magtiayon nga mga setting sa sysctl ug idugang ang mga tiggamit nga adunay gikinahanglan nga UID. Pangutan-a ang mga lalaki sa operasyon, nahibal-an nila".

Ang katakus nga makit-an ang mga kalainan sa pag-configure ug matul-id kini nga aktibo naghatag kalinaw sa hunahuna. Kung wala’y sistema sa pagdumala sa pagsumpo, kasagaran kini lahi. Ang mga problema natipon hangtod sa usa ka adlaw nga kini "gipana" sa produksiyon. Pagkahuman gihimo ang usa ka debriefing, gisusi ug gitul-id ang mga pag-configure. Ug ang siklo gisubli pag-usab

Ug siyempre, gipadali namon ang paglansad sa mga server sa operasyon gikan sa daghang mga adlaw hangtod sa mga oras.

Aw, sa Bisperas sa Bag-ong Tuig mismo, sa dihang ang mga bata malipayong naghubad sa mga regalo ug ang mga hamtong nanghinaut samtang ang huni, gibalhin sa among mga inhenyero ang sistema sa SAP ngadto sa bag-ong mga server. Bisan si Santa Claus moingon nga ang labing maayong mga milagro mao ang mga maayong pagkaandam.

PS Ang among team kanunay nga makasugat sa kamatuoran nga gusto sa mga kostumer nga sulbaron ang mga problema sa pagdumala sa configuration kutob sa mahimo. Sa tinuud, ingon nga pinaagi sa salamangka - nga adunay usa ka himan. Apan sa kinabuhi ang tanan mas komplikado (oo, ang mga pilak nga bala wala na ipadala pag-usab): kinahanglan nimo nga maghimo usa ka tibuuk nga proseso gamit ang mga himan nga kombenyente alang sa team sa kustomer.

Awtor: Sergey Artemov, arkitekto sa departamento Mga solusyon sa DevOps "Mga Sistema sa Impormasyon sa Jet"

Source: www.habr.com

Idugang sa usa ka comment