De triedden snije: migrearje fan Puppet Enterprise nei Ansible Tower. Diel 1

De National Environmental Satellite Data Information Service (NESDIS) hat syn konfiguraasjebehearkosten foar Red Hat Enterprise Linux (RHEL) mei 35% fermindere troch te migrearjen fan Puppet Enterprise nei Ansible Tower. Yn dizze fideo "hoe't wy it diene" ferklearret systeemingenieur Michael Rau de saak foar dizze migraasje, en dielen nuttige tips en lessen leard fan it ferpleatsen fan de iene SCM nei de oare.

Fan dizze fideo sille jo leare:

  • hoe te rjochtfeardigjen foar behear de helberens fan it wikseljen fan Puppet Enterprise nei Ansible Tower;
  • hokker strategyen te brûken om de oergong sa glêd mooglik te meitsjen;
  • tips foar transcoding PE manifestearret yn Ansible Playbook;
  • Oanbefellings foar optimale ynstallaasje fan Ansible Tower.

De triedden snije: migrearje fan Puppet Enterprise nei Ansible Tower. Diel 1

Hallo elkenien, myn namme is Michael Rau, ik bin in Senior Systems Engineer by ActioNet, dy't wurket foar de National Oceanic and Atmospheric Administration (NOAA) NESDIS-tsjinst. Hjoed sille wy prate oer string trimmen - myn eigen ûnderfining fan migrearjen fan Puppet Enterprise nei Ansible Tower. It tema fan dizze presintaasje is om "sjoch nei myn littekens" nei't ik dizze oergong earder yn it jier makke. Ik wol diele wat ik haw leard troch dit proses. Dus as jo sa'n ding oannimme, mei myn ûnderfining, kinne jo de oergong meitsje sûnder ekstra wurk.

Jo sjogge dia's lykas dit oan it begjin fan elke presintaasje by Ansible Fest. Dizze slide sketst de skiednis fan 'e automatisearring fan myn bedriuw. Ik bin hjir net nij, om't ik Puppet/Puppet Enterprise sûnt 2007 haw brûkt. Ik begon te wurkjen mei Ansible yn 2016, en lykas in protte oare brûkers fan dit produkt, waard ik oanlutsen troch de mooglikheid fan "tricks" mei de kommandorigel en ienfâldige skripts (playbooks). Oan 'e ein fan 2017 haw ik myn management benadere oer de sterke redenen om te ferhúzjen nei Ansible Tower. Yn in minút sil ik jo fertelle oer de redenen dy't my oansporen om dizze stap te nimmen. Nei it ûntfangen fan de tastimming fan it management duorre it noch ferskate moannen om it plan te foltôgjen, en ik makke de oergong yn jannewaris-febrewaris fan dit jier. Dat, wy hawwe Puppet folslein ferlitten yn it foardiel fan Ansible, en it is in geweldich ding.

De triedden snije: migrearje fan Puppet Enterprise nei Ansible Tower. Diel 1

Wat my it meast oansprekt oan Ansible is de mooglikheid om rollen en toanielstikken te skriuwen en te brûken. Rollen binne geweldich foar it meitsjen fan ûnderskate, mar relatearre taken en it pleatsen fan alle gegevens relatearre oan dy taken op ien plak. In playbook is in YAML-syntaksis, skripttriem dat aksjes beskriuwt foar ien of mear hosts. Ik fertel brûkers oer dizze funksjes, benammen software-ûntwikkelders. Ansible Tower jout jo de mooglikheid om te sizzen, "nee, jo hawwe gjin shell-tagong, mar ik jou jo de mooglikheid om alle Tower-prosessen út te fieren en de tsjinst opnij te begjinnen as jo it nedich binne." Ik sil jo fertelle oer de wurkomjouwing en de apparatuer dy't wy brûke.

De triedden snije: migrearje fan Puppet Enterprise nei Ansible Tower. Diel 1

Dit is in federale LAN, 7 fysike siden ferbûn fia wolk MPLS, 140 RHEL-tsjinners, wêrfan 99% firtuele (vSphere), SuperMicro-hardware, NexentaStore netwurk opslach, in set fan Cisco, Arista en Cumulus switches en Fortinet UTM unified bedriging behear ark op elke side.

It federale netwurk betsjut dat ik alle ynformaasjebefeiligingsmaatregels moat brûke troch de wet. Jo moatte yn gedachten hâlde dat Puppet Enterprise de measte hardware dy't wy brûke net stipet. Wy binne twongen om budzjet-hardware te brûken, om't oerheidsynstânsjes problemen hawwe mei it finansierjen fan dizze útjeftepost. Dêrom keapje wy SuperMicro-hardware en sammelje ús apparatuer út yndividuele dielen, wêrfan it ûnderhâld wurdt garandearre troch oerheidskontrakten. Wy brûke Linux en dit is ien fan 'e wichtige redenen om te wikseljen nei Ansible.

Us skiednis mei Puppet is as folget.

De triedden snije: migrearje fan Puppet Enterprise nei Ansible Tower. Diel 1

Yn 2007 hiene wy ​​in lyts netwurk fan 20-25 knopen, wêryn wy Puppet ynset. Yn prinsipe wiene dizze knopen gewoan RedHat "doazen". Yn 2010 begûnen wy de webynterface fan Puppet Dashboard te brûken foar 45 knopen. Doe't it netwurk fierder útwreide, ferhuze wy nei PE 2014 yn 3.3, en makken in folsleine oergong mei in manifest herskriuwe foar 75 knopen. Dit moast dien wurde om't Puppet graach de regels fan it spul feroarje, en yn dit gefal feroare se de taal folslein. In jier letter, doe't stipe foar ferzje 3 fan Puppet Enterprise einige, waarden wy twongen om te migrearjen nei PE 2015.2. Wy moasten it manifest opnij skriuwe foar de nije tsjinners en in lisinsje keapje mei in reserve fan 100 knopen, hoewol wy op dat stuit mar 85 knopen hienen.

Allinnich 2 jier binne foarby, en wy moasten wer in protte wurk dwaan om te migrearjen nei de nije ferzje PE 2016.4. Wy kochten in lisinsje foar 300 knooppunten, hawwende mar 130. Wy moasten wer grutte feroarings meitsje oan it manifest omdat de nije ferzje fan de taal in oare syntaksis hie as de taal fan de 2015 ferzje. As resultaat skeakele ús SCM fan SVN-ferzjekontrôle nei Bitbucket (Git). Dit wie ús "relaasje" mei Puppet.

Dat, ik moast it management útlizze wêrom't wy moatte ferhúzje nei in oare SCM mei de folgjende arguminten. De earste is de hege priis fan 'e tsjinst. Ik praat mei de jonges by RedHat en se seine dat de kosten foar it útfieren fan in 300-knooppuntnetwurk mei Ansible Tower de helte fan 'e kosten fan Puppet Enterprise binne. As jo ​​ek Ansible Engine keapje, sille de kosten sawat itselde wêze, mar jo krije folle mear funksjes dan PE. Sûnt wy binne in steat-eigendom bedriuw finansierd út de federale begrutting, dit is in frij krêftige argumint.

De triedden snije: migrearje fan Puppet Enterprise nei Ansible Tower. Diel 1

It twadde argumint is veelzijdigheid. Puppet stipet allinich hardware dy't in Puppet-agint hat. Dit betsjut dat in agint moat wurde ynstallearre op alle skakelaars, en it moat wêze de lêste ferzje. En as guon fan jo skeakels ien ferzje stypje, en guon stypje in oare, moatte jo in nije ferzje fan 'e PE-agint op har ynstallearje, sadat se allegear kinne wurkje yn itselde SCM-systeem.

It Ansible Tower-systeem wurket oars om't it gjin aginten hat, mar it hat modules dy't Cisco-skeakels en alle oare skakelaars stypje. Dizze SCM stipet Qubes OS, Linux en 4.NET UTM. Ansible Tower stipet ek NexentaStore netwurk opslach controllers basearre op de Illumos kernel, in iepen-boarne Unix-basearre bestjoeringssysteem. Dit is heul lyts stipe, mar Ansible Tower docht it dochs.

It tredde argumint, dat sawol foar my as foar ús administraasje tige wichtich is, is it gemak fan gebrûk. Ik brocht 10 jier master Puppet modules en manifest koade, mar ik learde Ansible binnen in wike omdat dit SCM is folle makliker om te wurkjen mei. As jo ​​​​útfierbere bestannen útfiere, fansels, útsein as jo dat net nedich dogge, dan wurkje yntelliginte en responsive handlers mei har. YAML-basearre playbooks binne maklik te learen en rap te brûken. Dejingen dy't noch noait earder fan YAML hawwe heard, kinne de skripts gewoan lêze en maklik begripe hoe't it wurket.

Om earlik te wêzen, makket Puppet jo baan as ûntwikkelder folle dreger, om't it is basearre op it brûken fan Puppet Master. It is de ienige masine tastien om te kommunisearjen mei Puppet aginten. As jo ​​​​wizigingen oan it manifest hawwe makke en jo koade wolle testen, moatte jo de koade foar Puppet Master opnij skriuwe, dat is de Puppet Master /etc/hosts-bestân ynstelle om alle kliïnten te ferbinen en de Puppet Server-tsjinst te begjinnen. Pas nei dit sille jo de wurking fan netwurkapparatuer op ien host kinne testen. Dit is in frij pynlike proseduere.
Alles is folle ienfâldiger yn Ansible. Alles wat jo hoege te dwaan is koade te ûntwikkeljen foar in masine dy't fia SSH kin kommunisearje mei de host ûnder test. Dit is folle makliker om mei te wurkjen.

It folgjende grutte foardiel fan Ansible Tower is de mooglikheid om jo besteande stipesysteem te benutten en jo besteande hardwarekonfiguraasje te behâlden. Dizze SCM brûkt alle beskikbere ynformaasje oer jo ynfrastruktuer en hardware, firtuele masines, servers, ensfh., sûnder ekstra stappen. It kin prate mei jo RH Satellite-tsjinners, as jo ien hawwe, en jout jo yntegraasjes dy't jo noait sille krije mei Puppet.

In oar wichtich ding is detaillearre kontrôle. Jo witte dat Puppet in modulêr systeem is, it is in client-server-applikaasje, dus jo moatte de besteande aspekten fan al jo masines definiearje yn ien lang manifest. Yn dit gefal moat de steat fan elk yndividueel elemint fan it systeem elke heal oere hifke wurde - dit is de standertperioade. Dit is hoe Puppet wurket.

Toer rêdt dy fan dat. Jo kinne in ferskaat oan prosessen útfiere op in ferskaat oan apparatuer sûnder beheiningen; jo kinne basiswurk dwaan, oare wichtige prosessen útfiere, in befeiligingssysteem ynstelle en wurkje mei databases. Jo kinne alles dwaan wat lestich is yn Puppet Enterprise. Dus, as jo it op ien host konfigureare, sil it tiid duorje foar de wizigingen om effekt te nimmen op de oerbleaune hosts. Yn Ansible binne alle wizigingen tagelyk effekt.

As lêste, lit ús sjen nei de feiligens module. Ansible Tower implementeart it gewoan geweldich, mei grutte presyzje en soarch. Jo kinne brûkers tagong jaan ta spesifike tsjinsten as oan spesifike hosts. Ik doch dit mei myn meiwurkers dy't wend binne om te wurkjen oan Windows, beheine har tagong ta de Linux-shell. Ik soargje derfoar dat se tagong hawwe ta Tower, sadat se allinich it wurk kinne dwaan en allinich de tsjinsten útfiere dy't foar har relevant binne.

De triedden snije: migrearje fan Puppet Enterprise nei Ansible Tower. Diel 1

Litte wy nei de dingen sjen dy't jo fan tefoaren moatte dwaan om jo oergong nei Ansible Tower makliker te meitsjen. Earst moatte jo jo apparatuer tariede. As guon eleminten fan jo ynfrastruktuer net al yn 'e databank binne, moatte jo se dêr tafoegje. D'r binne systemen dy't har skaaimerken net feroarje en binne dêrom net yn 'e Puppet-database, mar as jo se dêr net tafoegje foardat jo nei Tower ferhúzje, sille jo in oantal foardielen ferlieze. Dit kin in "smoarch", foarriedige databank wêze, mar it moat ynformaasje befetsje oer alle apparatuer dy't jo hawwe. Dêrom moatte jo in dynamysk hardwareskript skriuwe dat alle ynfrastruktuerwizigingen automatysk yn 'e databank sil triuwe, dan sil Ansible witte hokker hosts oanwêzich wêze moatte op it nije systeem. Jo hoege dizze SCM net te fertellen hokker hosts jo tafoege hawwe en hokker hosts net mear besteane, om't it dit alles automatysk wit. Hoe mear gegevens der yn 'e databank binne, hoe brûkberder en fleksibeler Ansible sil wêze. It wurket as lêst it gewoan de barcode fan 'e hardwarestatus fan in databank.

Besteegje wat tiid om fertroud te wurden mei de kommandorigel yn Ansible. Rinne wat oanpaste kommando's om it hardwareskript te testen, skriuw en útfiere wat ienfâldige, mar brûkbere playbook-skripts, brûk Jinja2-sjabloanen wêr passend. Besykje in rol en skript te skriuwen foar in kompleks proses mei meardere stappen mei in gewoane hardwarekonfiguraasje dy't gewoanlik tsjinkomt. Boartsje mei dizze dingen, test hoe't it wurket. Op dizze manier sille jo leare hoe't jo de ark foar oanmeitsjen fan biblioteek brûke kinne brûkt yn Tower. Ik haw al sein dat it my sawat 3 moannen duorre om foar de oergong ta te rieden. Ik tink dat jo op basis fan myn ûnderfining dit rapper kinne dwaan. Besjoch dizze tiid net fergriemd, want letter sille jo alle foardielen fan it dien wurk ûnderfine.

Folgjende moatte jo beslute wat jo ferwachtsje fan Ansible Tower, wat dit systeem krekt foar jo moat dwaan.

De triedden snije: migrearje fan Puppet Enterprise nei Ansible Tower. Diel 1

Moatte jo it systeem ynsette op bleate hardware, op bleate firtuele masines? Of wolle jo de oarspronklike bedriuwsbetingsten en ynstellings fan besteande apparatuer behâlde? Dit is in heul wichtich aspekt foar iepenbiere bedriuwen, dus jo moatte der wis fan wêze dat jo Ansible kinne migrearje en ynsette op jo besteande konfiguraasje. Identifisearje routine bestjoerlike prosessen dy't jo wolle automatisearje. Fyn út as jo spesifike applikaasjes en tsjinsten moatte ynsette op it nije systeem. Meitsje in list fan wat jo wolle dwaan en prioritearje it.

Begjin dan mei it skriuwen fan skriptkoade en rollen dy't de taken ynskeakelje dy't jo fan plan binne te foltôgjen. Kombinearje se yn Projects, in logyske samling relevante playbooks. Elk projekt sil hearre ta in aparte Git-repository as in oare repository ôfhinklik fan hokker koadebehearder jo brûke. Jo kinne playbook-skripts en playbook-mappen beheare troch se manuell te pleatsen yn it Project Base Path op 'e Tower-tsjinner, of troch it playbook te pleatsen yn elk boarnekoadebehearsysteem (SCM) stipe troch Tower, ynklusyf Git, Subversion, Mercurial, en Red Hat Ynsjoch. Binnen ien Projekt kinne jo safolle skripts pleatse as jo wolle. Bygelyks haw ik ien basisprojekt makke wêryn ik in skript pleatst foar de RedHat-kearn-eleminten, in skript foar de Linux-kearn, en skripts foar de rest fan 'e basislinen. Sa wiene d'r yn ien projekt in ferskaat oan rollen en senario's dy't waarden beheard fan ien Git-repository.

It útfieren fan al dizze dingen fia de kommandorigel is in goede manier om har funksjonaliteit te testen. Dit sil jo tariede op de ynstallaasje fan 'e Tower.

Litte wy in bytsje prate oer it transkodearjen fan it Puppet-manifest, om't ik hjir in protte tiid oan bestege oant ik derachter kaam wat der eins dien wurde moast.

De triedden snije: migrearje fan Puppet Enterprise nei Ansible Tower. Diel 1

Lykas ik earder sei, bewarret Puppet alle ynstellingen en hardwareopsjes yn ien lang manifest, en dit manifest bewarret alles wat dizze SCM moat dwaan. By it meitsjen fan de oergong hoege jo net al jo taken yn ien list te proppen; tink ynstee oer de struktuer fan it nije systeem: rollen, skripts, tags, groepen en wat der hinne moat. Guon fan 'e autonome netwurk eleminten moatte wurde groepearre yn groepen dêr't skripts kinne wurde makke. Mear komplekse ynfrastruktuer-eleminten dy't in grut oantal boarnen befetsje, ynklusyf selsstannige klassen, kinne wurde kombineare yn rollen. Foardat jo migrearje, moatte jo hjiroer beslute. As jo ​​​​grutte rollen as senario's meitsje dy't net op ien skerm passe, moatte jo tags brûke om spesifike dielen fan 'e ynfrastruktuer te fangen.

18:00

De triedden snije: migrearje fan Puppet Enterprise nei Ansible Tower. Diel 2

Guon advertinsjes 🙂

Tankewol foar it bliuwen by ús. Hâld jo fan ús artikels? Wolle jo mear ynteressante ynhâld sjen? Stypje ús troch in bestelling te pleatsen of oan te befeljen oan freonen, wolk VPS foar ûntwikkelders fan $ 4.99, in unike analoog fan servers op yngongsnivo, dy't troch ús foar jo útfûn is: De hiele wierheid oer VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps fan $19 of hoe te dielen in tsjinner? (beskikber mei RAID1 en RAID10, oant 24 kearnen en oant 40GB DDR4).

Dell R730xd 2 kear goedkeaper yn Equinix Tier IV data sintrum yn Amsterdam? Allinne hjir 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV fan $199 yn Nederlân! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - fan $99! Lêze oer Hoe kinne jo Infrastructure Corp. klasse mei it brûken fan Dell R730xd E5-2650 v4 tsjinners wurdich 9000 euro foar in penny?

Boarne: www.habr.com

Add a comment