NacionÄlais vides satelÄ«tu datu informÄcijas dienests (NESDIS) ir samazinÄjis Red Hat Enterprise Linux (RHEL) konfigurÄcijas pÄrvaldÄ«bas izmaksas par 35%, pÄrejot no Puppet Enterprise uz Ansible Tower. Å ajÄ videoklipÄ ākÄ mÄs to paveicÄmā sistÄmu inženieris Maikls Rau izskaidro Ŕīs migrÄcijas gadÄ«jumu, daloties ar noderÄ«giem padomiem un mÄcÄ«bÄm, kas gÅ«tas, pÄrejot no viena SCM uz citu.
No Ŕī video jÅ«s uzzinÄsit:
- kÄ pamatot vadÄ«bai iespÄjamÄ«bu pÄriet no Puppet Enterprise uz Ansible Tower;
- kÄdas stratÄÄ£ijas izmantot, lai pÄreja bÅ«tu pÄc iespÄjas vienmÄrÄ«gÄka;
- padomi PE manifestu pÄrkodÄÅ”anai Ansible Playbook;
- Ieteikumi optimÄlai Ansible Tower uzstÄdÄ«Å”anai.
Sveiki visiem, mani sauc Maikls Rau. Es esmu vecÄkais sistÄmu inženieris uzÅÄmumÄ ActioNet, kas strÄdÄ NacionÄlÄs okeÄnu un atmosfÄras administrÄcijas (NOAA) NESDIS dienestÄ. Å odien mÄs runÄsim par stÄ«gu apgrieÅ”anu ā mana pieredze, migrÄjot no Puppet Enterprise uz Ansible Tower. Å Ä«s prezentÄcijas tÄma ir āpaskatÄ«ties uz manÄm rÄtÄmā, kas palikuÅ”as pÄc tam, kad es veicu Å”o pÄreju gada sÄkumÄ. Es vÄlos dalÄ«ties ar to, ko esmu iemÄcÄ«jies Å”ajÄ procesÄ. TÄtad, kad jÅ«s uzÅematies kaut ko lÄ«dzÄ«gu, izmantojot manu pieredzi, varat veikt pÄreju bez papildu darba.
Katras Ansible Fest prezentÄcijas sÄkumÄ ir redzami Å”im lÄ«dzÄ«gi slaidi. Å ajÄ slaidÄ ir izklÄstÄ«ta mana uzÅÄmuma automatizÄcijas vÄsture. Es neesmu iesÄcÄjs Å”ajÄ jomÄ, jo es izmantoju Puppet/Puppet Enterprise kopÅ” 2007. gada. Es sÄku strÄdÄt ar Ansible 2016. gadÄ, un, tÄpat kÄ daudzus citus Ŕī produkta lietotÄjus, mani piesaistÄ«ja iespÄja āmÄnÄ«tā, izmantojot komandrindu un vienkÄrÅ”us skriptus (playbooks). 2017. gada beigÄs es vÄrsos pie savas vadÄ«bas, lai uzzinÄtu, kÄdi ir nopietni iemesli pÄrcelties uz Ansible Tower. PÄc minÅ«tes es jums pastÄstÄ«Å”u par iemesliem, kas mani pamudinÄja spert Å”o soli. PÄc vadÄ«bas piekriÅ”anas saÅemÅ”anas plÄna pabeigÅ”ana prasÄ«ja vÄl vairÄkus mÄneÅ”us, un pÄreju veicu Ŕī gada janvÄrÄ«-februÄrÄ«. TÄtad, mÄs pilnÄ«bÄ atteicÄmies no Puppet par labu Ansible, un tÄ ir lieliska lieta.
Mani visvairÄk uzrunÄ Ansible spÄja rakstÄ«t un izmantot lomas un rotaļu grÄmatas. Lomas ir lieliski piemÄrotas atseviŔķu, bet saistÄ«tu uzdevumu izveidei un visu ar Å”iem uzdevumiem saistÄ«to datu ievietoÅ”anai vienuviet. RokasgrÄmata ir YAML sintakse, skripta fails, kas apraksta darbÄ«bas vienam vai vairÄkiem saimniekiem. Es pastÄstu lietotÄjiem par Ŕīm funkcijÄm, galvenokÄrt programmatÅ«ras izstrÄdÄtÄjiem. Ansible Tower sniedz jums iespÄju pateikt: "nÄ, jums nav Äaulas piekļuves, bet es dodu jums iespÄju palaist visus Tower procesus un restartÄt pakalpojumu, kad tas ir nepiecieÅ”ams." PastÄstÄ«Å”u par darba vidi un izmantojamo tehniku.
Å is ir federÄlais LAN, 7 fiziskas vietnes, kas savienotas, izmantojot mÄkoÅa MPLS, 140 RHEL serveri, no kuriem 99% ir virtuÄli (vSphere), SuperMicro aparatÅ«ra, NexentaStore tÄ«kla krÄtuve, Cisco, Arista un Cumulus slÄdžu komplekts un Fortinet UTM vienota draudu pÄrvaldÄ«ba. rÄ«ki katrÄ vietnÄ.
FederÄlais tÄ«kls nozÄ«mÄ, ka man ir jÄizmanto visi likumÄ paredzÄtie informÄcijas droŔības pasÄkumi. Å emiet vÄrÄ, ka Puppet Enterprise neatbalsta lielÄko daļu mÅ«su izmantotÄs aparatÅ«ras. MÄs esam spiesti izmantot budžeta aparatÅ«ru, jo valsts aÄ£entÅ«rÄm ir problÄmas ar Ŕīs izdevumu pozÄ«cijas finansÄÅ”anu. TÄpÄc mÄs pÄrkam SuperMicro aparatÅ«ru un komplektÄjam savas iekÄrtas no atseviŔķÄm daļÄm, kuru apkopi garantÄ valsts lÄ«gumi. MÄs izmantojam Linux, un tas ir viens no svarÄ«gÄkajiem iemesliem, lai pÄrietu uz Ansible.
MÅ«su vÄsture ar Puppet ir Å”Äda.
2007. gadÄ mums bija neliels 20ā25 mezglu tÄ«kls, kurÄ mÄs izvietojÄm Puppet. BÅ«tÄ«bÄ Å”ie mezgli bija tikai RedHat ākastesā. 2010. gadÄ mÄs sÄkÄm izmantot Puppet Dashboard tÄ«mekļa saskarni 45 mezgliem. TÄ kÄ tÄ«kls turpinÄja paplaÅ”inÄties, 2014. gadÄ mÄs pÄrgÄjÄm uz PE 3.3, veicot pilnÄ«gu pÄreju ar manifesta pÄrrakstÄ«Å”anu 75 mezgliem. Tas bija jÄdara, jo Lellei patÄ«k mainÄ«t spÄles noteikumus, un Å”ajÄ gadÄ«jumÄ viÅi pilnÄ«bÄ mainÄ«ja valodu. Gadu vÄlÄk, kad beidzÄs Puppet Enterprise 3. versijas atbalsts, mÄs bijÄm spiesti migrÄt uz PE 2015.2. Mums bija vÄlreiz jÄpÄrraksta manifests jaunajiem serveriem un jÄiegÄdÄjas licence ar 100 mezglu rezervi, lai gan tajÄ laikÄ mums bija tikai 85 mezgli.
Ir pagÄjuÅ”i tikai 2 gadi, un mums atkal bija daudz jÄstrÄdÄ, lai migrÄtu uz jauno PE 2016.4 versiju. MÄs iegÄdÄjÄmies licenci 300 mezgliem, kuriem bija tikai 130. Mums atkal bija jÄveic bÅ«tiskas izmaiÅas manifestÄ, jo jaunajai valodas versijai bija atŔķirÄ«ga sintakse nekÄ 2015. gada versijas valodai. TÄ rezultÄtÄ mÅ«su SCM pÄrgÄja no SVN versijas kontroles uz Bitbucket (Git). TÄdas bija mÅ«su āattiecÄ«basā ar Puppet.
TÄpÄc man bija jÄpaskaidro vadÄ«bai, kÄpÄc mums bija jÄpÄriet uz citu SCM, izmantojot Å”Ädus argumentus. PirmÄ ir pakalpojuma augstÄ cena. Es runÄju ar RedHat puiÅ”iem, un viÅi teica, ka 300 mezglu tÄ«kla darbÄ«bas izmaksas ar Ansible Tower ir puse no Puppet Enterprise izmaksÄm. Ja iegÄdÄjaties arÄ« Ansible Engine, izmaksas bÅ«s aptuveni tÄdas paÅ”as, taÄu jÅ«s iegÅ«sit daudz vairÄk funkciju nekÄ PE. TÄ kÄ mÄs esam valsts uzÅÄmums, ko finansÄ no federÄlÄ budžeta, tas ir diezgan spÄcÄ«gs arguments.
Otrs arguments ir daudzpusÄ«ba. Puppet atbalsta tikai aparatÅ«ru, kurai ir Puppet aÄ£ents. Tas nozÄ«mÄ, ka aÄ£ents ir jÄinstalÄ visos slÄdžos, un tam ir jÄbÅ«t jaunÄkajai versijai. Un, ja daži no jÅ«su slÄdžiem atbalsta vienu versiju, bet daži atbalsta citu, jums tajos bÅ«s jÄinstalÄ jauna PE aÄ£enta versija, lai tie visi varÄtu darboties vienÄ SCM sistÄmÄ.
Ansible Tower sistÄma darbojas savÄdÄk, jo tai nav neviena aÄ£enta, taÄu tai ir moduļi, kas atbalsta Cisco slÄdžus un visus citus slÄdžus. Å is SCM atbalsta Qubes OS, Linux un 4.NET UTM. Ansible Tower atbalsta arÄ« NexentaStore tÄ«kla krÄtuves kontrolierus, kuru pamatÄ ir Illumos kodols, atvÄrtÄ koda Unix operÄtÄjsistÄma. Tas ir ļoti mazs atbalsts, taÄu Ansible Tower to dara jebkurÄ gadÄ«jumÄ.
TreÅ”ais arguments, kas ir ļoti svarÄ«gs gan man, gan mÅ«su administrÄcijai, ir lietoÅ”anas Ärtums. Es pavadÄ«ju 10 gadus, apgÅ«stot Puppet moduļus un manifesta kodu, bet es apguvu Ansible nedÄļas laikÄ, jo ar Å”o SCM ir daudz vieglÄk strÄdÄt. Ja palaižat izpildÄmos failus, protams, ja vien to nedarÄt bez vajadzÄ«bas, tad ar tiem strÄdÄ inteliÄ£enti un atsaucÄ«gi apstrÄdÄtÄji. Uz YAML balstÄ«tas rokasgrÄmatas ir viegli apgÅ«stamas un Ätri lietojamas. Tie, kas nekad nav dzirdÄjuÅ”i par YAML, var vienkÄrÅ”i izlasÄ«t skriptus un viegli saprast, kÄ tas darbojas.
GodÄ«gi sakot, Puppet padara jÅ«su kÄ izstrÄdÄtÄja darbu daudz grÅ«tÄku, jo tÄ pamatÄ ir Puppet Master izmantoÅ”ana. TÄ ir vienÄ«gÄ maŔīna, kam atļauts sazinÄties ar Leļļu aÄ£entiem. Ja esat veicis izmaiÅas manifestÄ un vÄlaties pÄrbaudÄ«t savu kodu, jums ir jÄpÄrraksta Puppet Master kods, tas ir, jÄkonfigurÄ Puppet Master /etc/hosts fails, lai savienotu visus klientus un startÄtu Puppet Server pakalpojumu. Tikai pÄc tam jÅ«s varÄsiet pÄrbaudÄ«t tÄ«kla aprÄ«kojuma darbÄ«bu vienÄ resursdatorÄ. Å Ä« ir diezgan sÄpÄ«ga procedÅ«ra.
Ansible viss ir daudz vienkÄrÅ”Äk. Viss, kas jums jÄdara, ir izstrÄdÄt kodu maŔīnai, kas var sazinÄties, izmantojot SSH, ar testÄjamo resursdatoru. Ar to ir daudz vieglÄk strÄdÄt.
NÄkamÄ lielÄ Ansible Tower priekÅ”rocÄ«ba ir iespÄja izmantot esoÅ”o atbalsta sistÄmu un uzturÄt esoÅ”o aparatÅ«ras konfigurÄciju. Å ajÄ SCM bez papildu darbÄ«bÄm tiek izmantota visa pieejamÄ informÄcija par jÅ«su infrastruktÅ«ru un aparatÅ«ru, virtuÄlajÄm maŔīnÄm, serveriem utt. Tas var sazinÄties ar jÅ«su RH Satellite serveriem, ja jums tÄdi ir, un nodroÅ”ina integrÄciju, ko nekad neiegÅ«sit, izmantojot Puppet.
VÄl viena svarÄ«ga lieta ir detalizÄta kontrole. JÅ«s zinÄt, ka Puppet ir modulÄra sistÄma, tÄ ir klienta-servera lietojumprogramma, tÄpÄc jums ir jÄdefinÄ visu savu maŔīnu esoÅ”ie aspekti vienÄ garÄ manifestÄ. Å ajÄ gadÄ«jumÄ katra atseviŔķa sistÄmas elementa stÄvoklis ir jÄpÄrbauda ik pÄc pusstundas - tas ir noklusÄjuma periods. Å Ädi darbojas Lelle.
Tornis glÄbj jÅ«s no tÄ. JÅ«s varat bez ierobežojumiem palaist dažÄdus procesus dažÄdÄs iekÄrtÄs, varat veikt pamata darbus, palaist citus svarÄ«gus procesus, iestatÄ«t droŔības sistÄmu un strÄdÄt ar datu bÄzÄm. Leļļu uzÅÄmumÄ varat darÄ«t visu, kas ir grÅ«ts. TÄtad, ja to konfigurÄjÄt vienÄ resursdatorÄ, paies laiks, lÄ«dz izmaiÅas stÄsies spÄkÄ atlikuÅ”ajos saimniekdatoros. ProgrammÄ Ansible visas izmaiÅas stÄjas spÄkÄ vienlaikus.
Visbeidzot, apskatÄ«sim droŔības moduli. Ansible Tower to Ä«steno vienkÄrÅ”i pÄrsteidzoÅ”i, ar lielu precizitÄti un rÅ«pÄ«bu. Varat pieŔķirt lietotÄjiem piekļuvi noteiktiem pakalpojumiem vai konkrÄtiem resursdatoriem. Es to daru ar saviem darbiniekiem, kuri ir pieraduÅ”i strÄdÄt ar Windows, ierobežojot viÅu piekļuvi Linux apvalkam. Es nodroÅ”inÄju, ka viÅiem ir piekļuve Tower, lai viÅi varÄtu veikt tikai darbu un sniegt tikai viÅiem atbilstoÅ”us pakalpojumus.
ApskatÄ«sim lietas, kas jums jÄdara pirms laika, lai atvieglotu pÄreju uz Ansible Tower. PirmkÄrt, jums ir jÄsagatavo aprÄ«kojums. Ja daži jÅ«su infrastruktÅ«ras elementi vÄl nav iekļauti datu bÄzÄ, tie ir jÄpievieno. Ir sistÄmas, kas nemaina to raksturlielumus un tÄpÄc nav Puppet datu bÄzÄ, taÄu, ja jÅ«s tÄs nepievienosiet tur pirms pÄrcelÅ”anÄs uz Tower, jÅ«s zaudÄsiet vairÄkas priekÅ”rocÄ«bas. TÄ var bÅ«t ānetÄ«raā, provizoriska datu bÄze, taÄu tajÄ ir jÄbÅ«t informÄcijai par visu jÅ«su rÄ«cÄ«bÄ esoÅ”o aprÄ«kojumu. TÄpÄc jums vajadzÄtu uzrakstÄ«t dinamisku aparatÅ«ras skriptu, kas automÄtiski nosÅ«tÄ«s visas infrastruktÅ«ras izmaiÅas datu bÄzÄ, un tad Ansible zinÄs, kuriem resursdatoriem vajadzÄtu bÅ«t jaunajÄ sistÄmÄ. Jums nebÅ«s jÄpasaka Å”im SCM, kurus saimniekdatorus esat pievienojis un kuri vairs nepastÄv, jo tas visu to uzzinÄs automÄtiski. Jo vairÄk datu bÅ«s datu bÄzÄ, jo noderÄ«gÄks un elastÄ«gÄks bÅ«s Ansible. Tas darbojas tÄ, it kÄ tas vienkÄrÅ”i nolasÄ«tu aparatÅ«ras statusa svÄ«trkodu no datu bÄzes.
Pavadiet kÄdu laiku, iepazÄ«stoties ar Ansible komandrindu. Palaidiet dažas pielÄgotas komandas, lai pÄrbaudÄ«tu aparatÅ«ras skriptu, uzrakstiet un palaidiet dažus vienkÄrÅ”us, bet noderÄ«gus rokasgrÄmatas skriptus, vajadzÄ«bas gadÄ«jumÄ izmantojiet Jinja2 veidnes. MÄÄ£iniet uzrakstÄ«t lomu un skriptu sarežģītam, daudzpakÄpju procesam, izmantojot parastu, bieži sastopamu aparatÅ«ras konfigurÄciju. SpÄlÄjiet ar Ŕīm lietÄm, pÄrbaudiet, kÄ tas darbojas. TÄdÄ veidÄ jÅ«s uzzinÄsit, kÄ izmantot tornÄ« izmantotos bibliotÄkas izveides rÄ«kus. Es jau teicu, ka man bija nepiecieÅ”ami apmÄram 3 mÄneÅ”i, lai sagatavotos pÄrejai. Es domÄju, ka, pamatojoties uz manu pieredzi, jÅ«s to varÄsit izdarÄ«t ÄtrÄk. Neuzskatiet Å”o laiku par velti, jo vÄlÄk jÅ«s izjutÄ«siet visas padarÄ«tÄ darba priekÅ”rocÄ«bas.
TÄlÄk jums jÄizlemj, ko jÅ«s sagaidÄt no Ansible Tower, ko tieÅ”i Å”ai sistÄmai vajadzÄtu darÄ«t jÅ«su labÄ.
Vai sistÄma ir jÄizvieto uz tukÅ”as aparatÅ«ras, uz tukÅ”Äm virtuÄlajÄm maŔīnÄm? Vai arÄ« vÄlaties saglabÄt esoÅ”o iekÄrtu sÄkotnÄjos darbÄ«bas apstÄkļus un iestatÄ«jumus? Tas ir ļoti svarÄ«gs aspekts valsts uzÅÄmumiem, tÄpÄc jums ir jÄbÅ«t pÄrliecinÄtam, ka varÄsit migrÄt un izvietot Ansible savÄ esoÅ”ajÄ konfigurÄcijÄ. Nosakiet parastos administratÄ«vos procesus, kurus vÄlaties automatizÄt. Uzziniet, vai jaunajÄ sistÄmÄ ir jÄizvieto konkrÄtas lietojumprogrammas un pakalpojumi. Izveidojiet sarakstu ar to, ko vÄlaties darÄ«t, un pieŔķiriet tam prioritÄti.
PÄc tam sÄciet rakstÄ«t skripta kodu un lomas, kas ļaus veikt plÄnotos uzdevumus. Apvienojiet tos projektos ā atbilstoÅ”o rokasgrÄmatu loÄ£iskÄ kolekcijÄ. Katrs projekts piederÄs atseviŔķai Git krÄtuvei vai citai krÄtuvei atkarÄ«bÄ no izmantotÄ koda pÄrvaldnieka. Varat pÄrvaldÄ«t rokasgrÄmatu skriptus un rokasgrÄmatu direktorijus, manuÄli ievietojot tos Tower servera Project Base Path vai ievietojot rokasgrÄmatu jebkurÄ avota koda pÄrvaldÄ«bas (SCM) sistÄmÄ, ko atbalsta Tower, tostarp Git, Subversion, Mercurial un Red Hat. Ieskati. Viena projekta ietvaros varat ievietot tik daudz skriptu, cik vÄlaties. PiemÄram, es izveidoju vienu pamata projektu, kurÄ ievietoju skriptu RedHat pamata elementiem, skriptu Linux kodolam un skriptus pÄrÄjÄm bÄzes lÄ«nijÄm. TÄdÄjÄdi vienÄ projektÄ bija dažÄdas lomas un scenÄriji, kas tika pÄrvaldÄ«ti no viena Git repozitorija.
Visu Å”o lietu palaiÅ”ana, izmantojot komandrindu, ir labs veids, kÄ pÄrbaudÄ«t to funkcionalitÄti. Tas sagatavos jÅ«s torÅa uzstÄdÄ«Å”anai.
ParunÄsim nedaudz par Puppet manifesta pÄrkodÄÅ”anu, jo es tam pavadÄ«ju daudz laika, lÄ«dz sapratu, kas patiesÄ«bÄ ir jÄdara.
KÄ jau teicu iepriekÅ”, Puppet saglabÄ visus iestatÄ«jumus un aparatÅ«ras opcijas vienÄ garÄ manifestÄ, un Å”ajÄ manifestÄ tiek saglabÄts viss, kas Å”im SCM bÅ«tu jÄdara. Veicot pÄreju, jums nav jÄsaliek visi uzdevumi vienÄ sarakstÄ; tÄ vietÄ padomÄjiet par jaunÄs sistÄmas struktÅ«ru: lomÄm, skriptiem, tagiem, grupÄm un tam, kas tajÄ jÄiekļauj. Daži autonomie tÄ«kla elementi ir jÄsagrupÄ grupÄs, kurÄm var izveidot skriptus. SarežģītÄkus infrastruktÅ«ras elementus, kas ietver lielu skaitu resursu, tostarp autonomas klases, var apvienot lomÄs. Pirms migrÄcijas jums tas ir jÄizlemj. Ja veidojat lielas lomas vai scenÄrijus, kas neietilpst vienÄ ekrÄnÄ, izmantojiet tagus, lai varÄtu tvert noteiktas infrastruktÅ«ras daļas.
18:00
Dažas reklÄmas š
Paldies, ka palikÄt kopÄ ar mums. Vai jums patÄ«k mÅ«su raksti? Vai vÄlaties redzÄt interesantÄku saturu? Atbalsti mÅ«s, pasÅ«tot vai iesakot draugiem,
Dell R730xd 2x lÄtÄk Equinix Tier IV datu centrÄ AmsterdamÄ? Tikai Å”eit
Avots: www.habr.com