Den nationella informationsservicen för satellitdata om miljön (NESDIS) har minskat sina kostnader för hantering av Red Hat Enterprise Linux (RHEL) med 35 % genom att byta frÄn Puppet Enterprise till Ansible Tower. I den hÀr videon frÄn kategorin 'hur vi gjorde det' förklarar systemingenjören Michael Rau varför denna migrering genomfördes, delar med sig av anvÀndbara tips och erfarenheter frÄn övergÄngen mellan olika SCM-system.
I den hÀr videon fÄr du veta:
- hur man motiverar ledningen till att byta frÄn Puppet Enterprise till Ansible Tower;
- vilka strategier man ska anvÀnda för en sÄ smidig övergÄng som möjligt;
- tips för att transkoda PE-manifest till Ansible Playbook;
- rekommendationer för optimal installation av Ansible Tower.

Hej allihopa, jag heter Michael Rau och jag Ă€r senior systemingenjör pĂ„ ActioNet, som arbetar för National Oceanic and Atmospheric Administration (NOAA) och NESDIS. Idag ska vi prata om att klippa strĂ€ngar â min egen erfarenhet av att migrera frĂ„n Puppet Enterprise till Ansible Tower. Ămnet för denna presentation handlar om att 'titta pĂ„ mina Ă€rr', kvarstĂ„ende efter att jag genomfört denna övergĂ„ng i början av Ă„ret. Jag vill berĂ€tta om vad jag lĂ€rt mig under detta process. SĂ„ nĂ€r du tar pĂ„ dig nĂ„got liknande, kan du anvĂ€nda min erfarenhet för att göra övergĂ„ngen utan onödigt besvĂ€r.
Du ser diabilder som denna i början av varje presentation pÄ Ansible Fest. PÄ denna bild framgÄr historien om min företagsautomatisering. Jag Àr ingen nybörjare pÄ detta omrÄde, eftersom jag har anvÀnt Puppet/Puppet Enterprise sedan 2007. Jag började arbeta med Ansible 2016, och det som lockade mig, liksom mÄnga andra anvÀndare av produkten, var möjligheten till 'tricks' med hjÀlp av kommandoraden och enkla skript (playbooks). I slutet av 2017 talade jag med min ledning om de allvarliga skÀlen till att övergÄ till Ansible Tower. Om en stund kommer jag att berÀtta om de skÀl som fick mig att ta detta steg. Efter att ha fÄtt ledningens godkÀnnande tog det flera mÄnader innan den planerade övergÄngen genomfördes i januari-februari i Är. SÄ, vi har helt övergivit Puppet till förmÄn för Ansible, vilket Àr en stor prestation.

Det som fascinerar mig mest med Ansible Àr möjligheten att skriva och anvÀnda roller (roles) och spelböcker (playbooks). Roller passar utmÀrkt för att skapa olika men relaterade uppgifter (tasks) och att samla all information relaterad till dessa uppgifter pÄ ett stÀlle. En playbook Àr en YAML-syntax, en skriptfil som beskriver ÄtgÀrder för en eller flera vÀrdar. Jag berÀttar för anvÀndarna, frÀmst utvecklare, om dessa funktioner. Ansible Tower ger möjlighet att sÀga: "nej, ni har inte tillgÄng till shell access, men jag ger er möjlighet att starta alla Tower-processer och starta om tjÀnsten nÀr ni behöver det". Jag kommer att berÀtta om arbetsmiljön och den utrustning vi anvÀnder.

Detta Àr ett federalt LAN, 7 fysiska platser kopplade via molnbaserat MPLS, 140 RHEL-servrar, varav 99 % Àr virtuella (vSphere), SuperMicro-hÄrdvara, NexentaStore nÀtverkslagring, en uppsÀttning switchar frÄn Cisco, Arista och Cumulus samt lösningar för enhetlig hotstyrning frÄn Fortinet UTM pÄ varje plats.
Det federala nÀtverket innebÀr att jag mÄste anvÀnda alla informationsskyddsmedel som föreskrivs av lagstiftningen. Ni bör ha i Ätanke att Puppet Enterprise inte stödjer den flesta hÄrdvara vi anvÀnder. Vi Àr tvungna att anvÀnda budgetvÀnlig hÄrdvara eftersom statliga institutioner har problem med finansiering av denna kostnad. DÀrför köper vi SuperMicro-hÄrdvara och sÀtter ihop vÄr utrustning av individuella komponenter vars underhÄll garanteras av statliga kontrakt. Vi anvÀnder Linux, och det Àr en av de viktiga anledningarna till övergÄngen till Ansible.
VÄr historia med Puppet Àr som följande.

Ă
r 2007 hade vi ett litet nĂ€tverk med 20-25 noder dĂ€r vi implementerade Puppet. Huvudsakligen bestod dessa noder bara av RedHat "lĂ„dor". Ă
r 2010 började vi anvĂ€nda webbgrĂ€nssnittet Puppet Dashboard för 45 noder. Eftersom nĂ€tverket fortsatte att vĂ€xa, övergick vi 2014 till PE 3.3 och gjorde en fullstĂ€ndig övergĂ„ng med omskrivning av manifestet för 75 noder. Detta behövde göras eftersom Puppet Ă€lskar att Ă€ndra spelreglerna, och i detta fall Ă€ndrade de helt sprĂ„ket. Ett Ă„r senare, nĂ€r stödet för tredje versionen av Puppet Enterprise upphörde, var vi tvungna att migrera till PE 2015.2. Ă
terigen var vi tvungna att skriva om manifestet för de nya servrarna och köpa licens för 100 noder, Àven om vi vid den tidpunkten bara hade 85 noder.
Det tog bara tvÄ Är, och vi behövde Äterigen göra ett stort arbete för att övergÄ till den nya versionen PE 2016.4. Vi köpte en licens för 300 noder, medan vi bara hade 130. Vi var Äterigen tvungna att göra betydande Àndringar i manifestet eftersom den nya versionen av sprÄket hade en syntax som skiljde sig frÄn 2015 Ärs version. I slutÀndan övergick vÄr SCM frÄn versionshanteringssystemet SVN till Bitbucket (Git). SÄ var vÄra "relationer" med Puppet.
SĂ„ jag var tvungen att förklara för ledningen varför vi behövde övergĂ„ till ett annat SCM, med följande argument. Först och frĂ€mst â den höga kostnaden för tjĂ€nsten. Jag pratade med killarna frĂ„n RedHat, och de sa att kostnaden för att underhĂ„lla ett nĂ€tverk med 300 noder med Ansible Tower Ă€r hĂ€lften sĂ„ hög som Puppet Enterprise. Om man ocksĂ„ köper Ansible Engine kommer kostnaden att bli ungefĂ€r den samma, men man fĂ„r betydligt fler funktioner Ă€n med PE. Eftersom vi Ă€r ett statligt företag som finansieras av federala medel Ă€r detta ett ganska tungt argument.

Det andra argumentet Àr mÄngsidigheten. Puppet stöder endast den hÄrdvara som har en Puppet-agent installerad. Det innebÀr att en agent mÄste installeras pÄ alla switchar, och den mÄste vara den senaste versionen. Om vissa av dina switchar stöder en version, medan andra stöder en annan version, behöver du installera den nya versionen av PE-agenten pÄ dem sÄ att de alla kan fungera inom samma SCM-system.
Ansible Tower fungerar pĂ„ ett annat sĂ€tt eftersom den inte har nĂ„gra agenter, men istĂ€llet har den moduler som stöder Cisco-switchar och alla andra switchar. Denna SCM stöder Qubes OS, Linux och 4.NET UTM. Ansible Tower stöder ocksĂ„ NexentaStore-nĂ€tverkslagringskontroller baserade pĂ„ Illumos-kĂ€rnan â ett open-source Unix-baserat operativsystem. Det hĂ€r Ă€r en mycket liten stöd, men Ansible Tower erbjuder det Ă€ndĂ„.
Det tredje argumentet, som Àr mycket viktigt bÄde för mig och vÄr administration, Àr den lÀtthet med vilken man kan lÀra sig det. Jag har under 10 Är lÀrt mig moduler och kodmanifest för Puppet, men jag lÀrde mig Ansible pÄ en vecka, eftersom det Àr mycket enklare att arbeta med denna SCM. Om du kör körbara filer, sÄ lÀnge du inte gör det utan anledning, sÄ har de smarta och responsiva hanterare. Playbooks, som baseras pÄ YAML, kÀnnetecknas av att de Àr lÀtta att lÀra sig och snabba att anvÀnda. De som aldrig tidigare har hört talas om YAML kan helt enkelt lÀsa skripten och lÀtt förstÄ hur det fungerar.
Ărligt talat, gör Puppet ditt arbete som utvecklare mycket mer komplicerat eftersom det Ă€r baserat pĂ„ anvĂ€ndning av Puppet Master. Det Ă€r den enda maskinen som har rĂ€tt att kommunicera med Puppet-agenter. Om du gör nĂ„gra Ă€ndringar i manifestet och vill testa din kod mĂ„ste du skriva om koden för Puppet Master, det vill sĂ€ga konfigurera Puppet-masterfilen /etc/hosts för att koppla alla klienter och starta Puppet Server-tjĂ€nsten. Endast efter detta kan du testa nĂ€tverksutrustningen pĂ„ en vĂ€rd. Det Ă€r en ganska smĂ€rtsam process.
I Ansible Àr allt mycket enklare. Allt du behöver göra Àr att utveckla koden för den maskin som kan kommunicera via SSH-protokollet med den testade vÀrden. Det Àr mycket lÀttare att arbeta med det.
NÀsta stora fördel med Ansible Tower Àr möjligheten att anvÀnda ditt befintliga supportsystem och bevara den nuvarande hÄrdvarukonfigurationen. Denna SCM anvÀnder utan nÄgra extra ÄtgÀrder all information du har om din infrastruktur och utrustning, virtuella maskiner, servrar, etc. Den kan kommunicera med dina RH Satellite-servrar, om sÄdana finns, och ger dig en integration som du aldrig kommer att fÄ nÀr du arbetar med Puppet.
En annan viktig sak Ă€r att ha detaljerad kontroll. Du vet att Puppet Ă€r ett modulĂ€rt system, det Ă€r en klient-serverapplikation, sĂ„ du mĂ„ste definiera de existerande aspekterna av alla dina maskiners arbete i en lĂ„ng manifestfil. Vid detta tillfĂ€lle mĂ„ste varje enskild del av systemet testas var trettionde minut â det Ă€r standardperioden. SĂ„ hĂ€r fungerar Puppet.
Tower befriar dig frÄn detta. Du kan utan begrÀnsningar utföra de mest varierande processerna pÄ den mest olika hÄrdvaran, du kan göra det grundlÀggande arbetet, starta andra viktiga processer, konfigurera sÀkerhetssystemet, arbeta med databaser. Du kan göra allt som Àr kopplat till vissa svÄrigheter inom Puppet Enterprise. SÄ, om du har gjort en konfiguration pÄ en vÀrd, tar det tid för förÀndringarna att trÀda i kraft pÄ de andra vÀrdarna. I Ansible trÀder alla förÀndringar i kraft samtidigt.
Slutligen, lÄt oss se pÄ sÀkerhetsmodulen. I Ansible Tower Àr den implementerad pÄ ett fantastiskt sÀtt, med stor noggrannhet och försiktighet. Du kan ge anvÀndare access till specifika tjÀnster eller till specifika vÀrdar. Jag gör sÄ med mina anstÀllda, som Àr vana vid att arbeta pÄ Windows, genom att begrÀnsa deras tillgÄng till Linux-skalet. Jag ger dem sÄdan tillgÄng till Tower att de endast kan utföra det arbete och starta de tjÀnster som ligger inom deras kompetens.

LÄt oss gÄ igenom de saker som behöver göras i förvÀg för att underlÀtta övergÄngen till Ansible Tower. Först och frÀmst mÄste du förbereda din hÄrdvara. Om vissa delar av din infrastruktur saknas i databasen, behöver de lÀggas till dÀr. Det finns system som inte Àndrar sina egenskaper och dÀrför saknas i Puppet-databasen, men om du inte lÀgger till dem före övergÄngen till Tower, kommer du att gÄ miste om en rad fördelar. Det kan vara en "smutsig" preliminÀr databas, men den mÄste innehÄlla information om all hÄrdvara du har. DÀrför bör du skriva ett dynamiskt hÄrdvaruskript som automatiskt kommer att göra alla Àndringar i infrastrukturen i databasen, sÄ att Ansible vet vilka vÀrdar som ska finnas i det nya systemet. Du behöver inte informera denna SCM om vilka vÀrdar du har lagt till och vilka som inte lÀngre existerar, eftersom allt detta kommer den att lÀra sig automatiskt. Ju mer data som finns i databasen, desto mer anvÀndbar och flexibel blir Ansible. Den fungerar som om den helt enkelt lÀser av databasen för att fÄ en statuskod för hÄrdvaran.
Ta dig tid att lÀra dig att arbeta med kommandoraden i Ansible. Kör specialkommandon för att testa hÄrdvaruskriptet, skriv och kör nÄgra enkla men anvÀndbara playbook-skript, anvÀnd Jinja2-mallar dÀr det passar. Försök att skriva en roll och ett skript för en komplex flertrapsprocess med en standardkonfiguration av hÄrdvara som ofta förekommer. LÄt dig leka med dessa saker, testa hur det fungerar. PÄ sÄ sÀtt lÀr du dig att arbeta med verktyg för att skapa bibliotek som anvÀnds i Tower. Jag har redan nÀmnt att det tog mig cirka 3 mÄnader att förbereda övergÄngen. Jag tror att baserat pÄ min erfarenhet kommer du att kunna göra det snabbare. TÀnk inte pÄ den hÀr tiden som förlorad, för senare kommer du att kÀnna alla fördelar med det arbete som gjorts.
DÀrefter mÄste du bestÀmma vad du förvÀntar dig av Ansible Tower, vad just detta system ska göra för dig.

Behöver du implementera systemet pÄ tom hÄrdvara eller pÄ tomma virtuella maskiner? Eller vill du behÄlla de ursprungliga driftsförhÄllandena och instÀllningarna för den befintliga hÄrdvaran? Detta Àr en mycket viktig aspekt för statliga företag, sÄ du mÄste vara sÀker pÄ att du kan genomföra migrationen och implementera Ansible pÄ den nuvarande konfigurationen. BestÀm de rutinmÀssiga administrativa processer som du vill automatisera. Ta reda pÄ om du behöver implementera specifika applikationer och tjÀnster pÄ det nya systemet. Gör en lista över vad du vill göra och prioritera.
GÄ sedan vidare med att skriva koden för skripten och rollerna som kommer att utföra de uppgifter du har planerat. Organisera dem i Projects, en logisk samling av motsvarande playbook-skript. Varje Project kommer att hÀnvisa till ett separat Git-repositorie eller annat repository beroende pÄ vilken kodhanterare du anvÀnder. Du kan hantera playbook-skript och kataloger genom att placera dem manuellt i Project Base Path pÄ Tower-servern, eller placera playbook i nÄgot versionshanteringssystem (SCM) som stöds av Tower, inklusive Git, Subversion, Mercurial och Red Hat Insights. Inom ett och samma Project kan du placera hur mÄnga skript du vill. Till exempel skapade jag ett grundlÀggande Project dÀr jag placerade skript för RedHat:s huvudkomponenter, skript för Linux-grunden och skript för andra grundlÀggande indikatorer. PÄ sÄ sÀtt innehöll ett och samma projekt olika roller och skript som hanterades frÄn ett enda Git-repositorie.
Kör allt detta via kommandoraden, det Àr ett bra sÀtt att kontrollera att de fungerar. PÄ sÄ sÀtt förbereder du dig för att installera Tower.
LÄt oss prata lite om transkodning av Puppet-manifestet, för jag har spenderat mycket tid pÄ detta innan jag insÄg vad som verkligen behövdes.

Som jag redan nÀmnt lagrar Puppet alla instÀllningar och hÄrdvaruparametrar i en lÄng manifestfil, och i denna manifestfil finns allt som denna SCM ska göra. Vid övergÄngen behöver du inte trycka in alla dina uppgifter i en lista; istÀllet bör du tÀnka pÄ strukturen i det nya systemet: roller, scenarier, taggar, grupper och vad som bör ingÄ dÀr. Vissa av nÀtverkskomponenterna bör samlas i grupper, för vilka du kan skapa scenarier. Mer komplexa infrastrukturkomponenter som anvÀnder mÄnga resurser, inklusive autonoma klasser, kan samlas i roller. Innan migreringen mÄste du bestÀmma detta. Om du skapar stora roller eller scenarier som inte fÄr plats pÄ en skÀrm bör du anvÀnda taggar för att kunna fÄnga specifika delar av infrastrukturen.
18:00
Lite reklam đ
Tack för att ni stannar kvar hos oss. Gillar ni vÄra artiklar? Vill ni se fler intressanta material? Stöd oss genom att göra en bestÀllning eller rekommendera oss till era vÀnner, , en unik motsvarighet till entry-level servrar som vi har skapat för er: (alternativ med RAID1 och RAID10 finns tillgÀngliga, upp till 24 kÀrnor och upp till 40GB DDR4).
Dell R730xd Ă€r tvĂ„ gĂ„nger billigare i datacentret Equinix Tier IV i Amsterdam? Bara hos oss i NederlĂ€nderna! Dell R420 â 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB â frĂ„n $99! LĂ€s om
KĂ€lla: habr.com
