Rezanje niti: migracija iz Puppet Enterprisea u Ansible Tower. 1. dio

Nacionalna služba za informacije o satelitskim podacima o okolišu (NESDIS) smanjila je troškove upravljanja konfiguracijom za Red Hat Enterprise Linux (RHEL) za 35% prelaskom s Puppet Enterprise na Ansible Tower. U ovom videu "kako smo to učinili", sistemski inženjer Michael Rau objašnjava slučaj ove migracije, dijeleći korisne savjete i lekcije naučene iz prelaska s jednog SCM-a na drugi.

U ovom videu ćete naučiti:

  • kako menadžmentu opravdati izvedivost prelaska s Puppet Enterprisea na Ansible Tower;
  • koje strategije koristiti kako bi prijelaz bio što lakši;
  • savjeti za transkodiranje PE manifesta u Ansible Playbook;
  • Preporuke za optimalnu ugradnju Ansible Towera.

Rezanje niti: migracija iz Puppet Enterprisea u Ansible Tower. 1. dio

Pozdrav svima, moje ime je Michael Rau, viši sam inženjer sustava u ActioNetu, koji radi za uslugu NESDIS Nacionalne uprave za oceane i atmosferu (NOAA). Danas ćemo razgovarati o obrezivanju žica - mom vlastitom iskustvu prelaska iz Puppet Enterprisea u Ansible Tower. Tema ove prezentacije je "pogledati svoje ožiljke" koji su ostali nakon što sam ranije tijekom godine napravio ovaj prijelaz. Želim podijeliti ono što sam naučio kroz ovaj proces. Dakle, kada prihvatite nešto poput ovoga, koristeći moje iskustvo, možete napraviti prijelaz bez dodatnog rada.

Slične slajdove vidite na početku svake prezentacije na Ansible Festu. Ovaj slajd prikazuje povijest automatizacije moje tvrtke. Nisam nov u ovome jer koristim Puppet/Puppet Enterprise od 2007. S Ansibleom sam počeo raditi 2016. godine, a kao i mnoge druge korisnike ovog proizvoda, privukla me mogućnost “trikova” pomoću naredbenog retka i jednostavnih skripti (playbooks). Krajem 2017. obratio sam se svojoj upravi o jakim razlozima za prelazak u Ansible Tower. Za minutu ću vam reći o razlozima koji su me potaknuli na ovaj korak. Nakon što sam dobio suglasnost uprave, trebalo je još nekoliko mjeseci da se plan dovrši, a ja sam izvršio prijelaz u razdoblju od siječnja do veljače ove godine. Dakle, potpuno smo napustili Puppet u korist Ansiblea, i to je sjajna stvar.

Rezanje niti: migracija iz Puppet Enterprisea u Ansible Tower. 1. dio

Ono što me najviše privlači kod Ansiblea je sposobnost pisanja i korištenja uloga i knjiga. Uloge su izvrsne za stvaranje različitih, ali povezanih zadataka i stavljanje svih podataka povezanih s tim zadacima na jedno mjesto. Playbook je YAML sintaksa, datoteka skripte koja opisuje akcije za jedno ili više hostova. Govorim korisnicima o tim značajkama, prvenstveno programerima softvera. Ansible Tower vam daje mogućnost da kažete: "ne, nemate pristup ljusci, ali ja vam dajem mogućnost pokretanja svih procesa Towera i ponovnog pokretanja usluge kada vam zatreba." Reći ću vam o radnom okruženju i opremi koju koristimo.

Rezanje niti: migracija iz Puppet Enterprisea u Ansible Tower. 1. dio

Ovo je federalni LAN, 7 fizičkih mjesta povezanih preko cloud MPLS-a, 140 RHEL poslužitelja, od kojih je 99% virtualnih (vSphere), SuperMicro hardver, NexentaStore mrežna pohrana, skup Cisco, Arista i Cumulus preklopnika i Fortinet UTM objedinjeno upravljanje prijetnjama alata na svakom mjestu.

Federalna mreža znači da moram koristiti sve mjere zaštite informacija koje predviđa zakon. Trebate imati na umu da Puppet Enterprise ne podržava većinu hardvera koji koristimo. Prisiljeni smo koristiti proračunsku opremu jer državne agencije imaju problema s financiranjem ove stavke. Zato kupujemo SuperMicro hardver i sastavljamo našu opremu od pojedinačnih dijelova čije je održavanje zajamčeno državnim ugovorima. Koristimo Linux i to je jedan od važnih razloga za prelazak na Ansible.

Naša povijest s Puppetom je sljedeća.

Rezanje niti: migracija iz Puppet Enterprisea u Ansible Tower. 1. dio

Godine 2007. imali smo malu mrežu od 20-25 čvorova u koju smo postavili Puppet. U osnovi, ti su čvorovi bili samo RedHat "kutije". 2010. godine počeli smo koristiti web sučelje Puppet Dashboard za 45 čvorova. Kako se mreža nastavila širiti, prešli smo na PE 2014 3.3., izvršivši potpuni prijelaz s prepisivanjem manifesta za 75 čvorova. To je moralo biti učinjeno jer Puppet voli mijenjati pravila igre, au ovom slučaju potpuno su promijenili jezik. Godinu dana kasnije, kada je prestala podrška za verziju 3 Puppet Enterprisea, bili smo prisiljeni migrirati na PE 2015.2. Morali smo ponovo napisati manifest za nove poslužitelje i kupiti licencu s rezervom od 100 čvorova, iako smo u to vrijeme imali samo 85 čvorova.

Prošle su samo 2 godine, a opet smo morali obaviti puno posla da bismo prešli na novu verziju PE 2016.4. Kupili smo licencu za 300 čvorova, a imali smo samo 130. Ponovno smo morali napraviti velike promjene u manifestu jer je nova verzija jezika imala drugačiju sintaksu od jezika verzije iz 2015. godine. Kao rezultat toga, naš SCM prebacio se sa SVN kontrole verzija na Bitbucket (Git). To je bila naša “veza” s Lutkom.

Dakle, morao sam objasniti upravi zašto smo se trebali preseliti na drugi SCM koristeći sljedeće argumente. Prvi je visoka cijena usluge. Razgovarao sam s momcima iz RedHata i rekli su da je trošak pokretanja mreže od 300 čvorova s ​​Ansible Towerom upola manji od troška Puppet Enterprisea. Ako također kupite Ansible Engine, cijena će biti približno ista, ali ćete dobiti mnogo više značajki od PE. Budući da smo državna tvrtka koja se financira iz federalnog proračuna, to je prilično jak argument.

Rezanje niti: migracija iz Puppet Enterprisea u Ansible Tower. 1. dio

Drugi argument je svestranost. Puppet podržava samo hardver koji ima Puppet agenta. To znači da agent mora biti instaliran na svim preklopnicima i mora biti najnovija verzija. A ako neki od vaših prekidača podržavaju jednu verziju, a neki drugu, morat ćete instalirati novu verziju PE agenta na njih kako bi svi mogli raditi u istom SCM sustavu.

Sustav Ansible Tower radi drugačije jer nema agenata, ali ima module koji podržavaju Cisco preklopnike i sve ostale preklopnike. Ovaj SCM podržava Qubes OS, Linux i 4.NET UTM. Ansible Tower također podržava NexentaStore mrežne kontrolere za pohranu temeljene na Illumos kernelu, operativnom sustavu otvorenog koda temeljenom na Unixu. Ovo je vrlo mala podrška, ali Ansible Tower to svejedno čini.

Treći argument, koji je vrlo važan i za mene i za našu upravu, je jednostavnost korištenja. Proveo sam 10 godina svladavajući Puppet module i kod manifesta, ali naučio sam Ansible u roku od tjedan dana jer je s ovim SCM-om puno lakše raditi. Ako pokrećete izvršne datoteke, naravno, osim ako to ne činite nepotrebno, tada s njima rade inteligentni i odgovarajući rukovatelji. Igre temeljene na YAML-u lako se uče i brzo koriste. Oni koji nikad prije nisu čuli za YAML mogu jednostavno pročitati skripte i lako razumjeti kako radi.

Da budem iskren, Puppet vam znatno otežava posao programera jer se temelji na korištenju Puppet Mastera. To je jedini stroj kojem je dopušteno komunicirati s agentima Lutke. Ako ste napravili bilo kakve promjene u manifestu i želite testirati svoj kod, morate ponovno napisati kod za Puppet Master, odnosno konfigurirati datoteku Puppet Master /etc/hosts za povezivanje svih klijenata i pokretanje usluge Puppet Server. Tek nakon toga moći ćete testirati rad mrežne opreme na jednom hostu. Ovo je prilično bolan postupak.
U Ansibleu je sve puno jednostavnije. Sve što trebate učiniti je razviti kod za stroj koji može komunicirati putem SSH s hostom koji se testira. S ovim je puno lakše raditi.

Sljedeća velika prednost Ansible Towera je mogućnost iskorištavanja vašeg postojećeg sustava podrške i održavanja vaše postojeće hardverske konfiguracije. Ovaj SCM koristi sve dostupne informacije o vašoj infrastrukturi i hardveru, virtualnim strojevima, poslužiteljima itd. bez ikakvih dodatnih koraka. Može komunicirati s vašim RH Satellite poslužiteljima, ako ih imate, i daje vam integracije koje nikada nećete dobiti s Puppetom.

Još jedna važna stvar je detaljna kontrola. Znate da je Puppet modularan sustav, to je aplikacija klijent-poslužitelj, tako da morate definirati postojeće aspekte svih vaših strojeva u jednom dugom manifestu. U tom slučaju, stanje svakog pojedinog elementa sustava mora se testirati svakih pola sata - ovo je zadano razdoblje. Ovako funkcionira Puppet.

Kula te spašava od toga. Možete pokretati različite procese na različitoj opremi bez ograničenja; možete obavljati osnovni posao, pokretati druge važne procese, postaviti sigurnosni sustav i raditi s bazama podataka. U Puppet Enterpriseu možete učiniti sve što je teško. Dakle, ako ste ga konfigurirali na jednom hostu, trebat će vremena da promjene stupe na snagu na preostalim hostovima. U Ansibleu sve promjene stupaju na snagu u isto vrijeme.

Na kraju, pogledajmo sigurnosni modul. Ansible Tower to implementira jednostavno nevjerojatno, s velikom preciznošću i pažnjom. Korisnicima možete dopustiti pristup određenim uslugama ili određenim hostovima. To radim sa svojim zaposlenicima koji su navikli raditi na Windowsima, ograničavajući im pristup ljusci Linuxa. Osiguravam da imaju pristup Toweru kako bi mogli obavljati samo posao i pokretati samo one usluge koje su im relevantne.

Rezanje niti: migracija iz Puppet Enterprisea u Ansible Tower. 1. dio

Pogledajmo stvari koje trebate učiniti unaprijed kako biste olakšali prijelaz na Ansible Tower. Prije svega, morate pripremiti svoju opremu. Ako neki elementi vaše infrastrukture još nisu u bazi podataka, morate ih tamo dodati. Postoje sustavi koji ne mijenjaju svoje karakteristike i stoga ih nema u Puppet bazi, ali ako ih tamo ne dodate prije prelaska u Tower, izgubit ćete niz prednosti. Ovo može biti "prljava", preliminarna baza podataka, ali bi trebala sadržavati informacije o svoj opremi koju imate. Stoga biste trebali napisati dinamičku hardversku skriptu koja će automatski gurnuti sve promjene infrastrukture u bazu podataka, tada će Ansible znati koji hostovi trebaju biti prisutni na novom sustavu. Nećete morati reći ovom SCM-u koje ste hostove dodali i koji hostovi više ne postoje, jer će on sve to znati automatski. Što više podataka ima u bazi podataka, Ansible će biti korisniji i fleksibilniji. Djeluje kao da jednostavno čita crtični kod statusa hardvera iz baze podataka.

Provedite neko vrijeme upoznavajući se s naredbenim redkom u Ansibleu. Pokrenite neke prilagođene naredbe za testiranje hardverske skripte, napišite i pokrenite neke jednostavne, ali korisne skripte priručnika, koristite Jinja2 predloške gdje je to prikladno. Pokušajte napisati ulogu i skriptu za složen proces u više koraka koristeći uobičajenu hardversku konfiguraciju koja se često susreće. Igrajte se s ovim stvarima, isprobajte kako funkcionira. Na ovaj način naučit ćete kako koristiti alate za stvaranje knjižnice koji se koriste u Toweru. Već sam rekao da mi je trebalo oko 3 mjeseca da se pripremim za prijelaz. Mislim da ćete, na temelju mog iskustva, to moći učiniti brže. Nemojte ovo vrijeme smatrati izgubljenim, jer kasnije ćete iskusiti sve dobrobiti obavljenog posla.

Zatim morate odlučiti što očekujete od Ansible Towera, što bi točno ovaj sustav trebao učiniti za vas.

Rezanje niti: migracija iz Puppet Enterprisea u Ansible Tower. 1. dio

Trebate li implementirati sustav na goli hardver, na gole virtualne strojeve? Ili želite zadržati izvorne radne uvjete i postavke postojeće opreme? Ovo je vrlo važan aspekt za javna poduzeća, stoga morate biti sigurni da ćete moći migrirati i implementirati Ansible na svoju postojeću konfiguraciju. Identificirajte rutinske administrativne procese koje želite automatizirati. Saznajte trebate li implementirati određene aplikacije i usluge na novom sustavu. Napravite popis onoga što želite učiniti i odredite prioritete.

Zatim počnite pisati kod skripte i uloge koje će omogućiti zadatke koje planirate izvršiti. Kombinirajte ih u Projekte, logičnu zbirku relevantnih priručnika. Svaki će projekt pripadati zasebnom Git repozitoriju ili drugom repozitoriju ovisno o tome koji upravitelj koda koristite. Možete upravljati skriptama priručnika i direktorijima priručnika ručnim postavljanjem u Project Base Path na poslužitelju Tower ili postavljanjem priručnika u bilo koji sustav upravljanja izvornim kodom (SCM) koji podržava Tower, uključujući Git, Subversion, Mercurial i Red Hat Uvidi. Unutar jednog projekta možete postaviti onoliko skripti koliko želite. Na primjer, stvorio sam jedan osnovni projekt u koji sam postavio skriptu za osnovne elemente RedHat-a, skriptu za jezgru Linuxa i skripte za ostale osnovne linije. Tako je u jednom projektu bilo raznih uloga i scenarija kojima se upravljalo iz jednog Git repozitorija.

Pokretanje svih ovih stvari kroz naredbeni redak dobar je način testiranja njihove funkcionalnosti. Ovo će vas pripremiti za instalaciju tornja.

Razgovarajmo malo o transkodiranju Puppet manifesta, jer sam potrošio dosta vremena na ovo dok nisam shvatio što zapravo treba učiniti.

Rezanje niti: migracija iz Puppet Enterprisea u Ansible Tower. 1. dio

Kao što sam već rekao, Puppet pohranjuje sve postavke i hardverske opcije u jednom dugačkom manifestu, a ovaj manifest pohranjuje sve što bi ovaj SCM trebao raditi. Prilikom prijelaza ne trebate sve svoje zadatke trpati na jedan popis; umjesto toga razmislite o strukturi novog sustava: ulogama, skriptama, oznakama, grupama i onome što bi tamo trebalo ići. Neke od elemenata autonomne mreže treba grupirati u skupine za koje se mogu kreirati skripte. Složeniji elementi infrastrukture koji uključuju velik broj resursa, uključujući samostalne klase, mogu se kombinirati u uloge. Prije migracije morate odlučiti o tome. Ako stvarate velike uloge ili scenarije koji ne stanu na jedan zaslon, trebali biste koristiti oznake da biste mogli uhvatiti određene dijelove infrastrukture.

18:00

Rezanje niti: migracija iz Puppet Enterprisea u Ansible Tower. 2. dio

Neki oglasi 🙂

Hvala što ste ostali s nama. Sviđaju li vam se naši članci? Želite li vidjeti više zanimljivog sadržaja? Podržite nas narudžbom ili preporukom prijateljima, cloud VPS za programere od 4.99 USD, jedinstveni analog poslužitelja početne razine, koji smo izmislili za vas: Cijela istina o VPS (KVM) E5-2697 v3 (6 jezgri) 10GB DDR4 480GB SSD 1Gbps od 19 USD ili kako podijeliti poslužitelj? (dostupno s RAID1 i RAID10, do 24 jezgre i do 40 GB DDR4).

Dell R730xd 2 puta jeftiniji u Equinix Tier IV podatkovnom centru u Amsterdamu? Samo ovdje 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV od 199 USD u Nizozemskoj! Dell R420 - 2x E5-2430 2.2 Ghz 6C 128 GB DDR3 2x960 GB SSD 1 Gbps 100 TB - od 99 USD! Pročitaj o Kako izgraditi infrastrukturu corp. klase uz korištenje Dell R730xd E5-2650 v4 servera vrijednih 9000 eura za lipu?

Izvor: www.habr.com

Dodajte komentar