Puppet Tutorial - One Stop Solution For Configuration Management



Puppet Tutorial är den andra bloggen i Puppet blog-serien. Det talar om Puppet-arkitektur, komponenter och ett exempel för att distribuera mysql & php med Puppet.

Puppet Tutorial

Puppet Tutorial är den andra bloggen i Puppet blog-serien. Jag hoppas att du har läst min tidigare blogg om “ Vad är Puppet ”Det förklarar Configuration Management och varför det är viktigt med hjälp av användningsfall.

I denna Puppet Tutorial kommer följande ämnen att behandlas:





Vad är konfigurationshantering?

I min föregående blogg , Jag har gett en introduktion till Configuration Management och vilka utmaningar det hjälper oss att övervinna. I denna Puppet Tutorial kommer jag att förklara dig om olika ömsesidigt beroende aktiviteter i Configuration Management.Men innan det, låt oss förstå vad som är Konfigurationsobjekt (CI). En konfigurationsartikel är en tjänstkomponent, infrastrukturelement eller annat objekt som måste hanteras för att säkerställa en framgångsrik leverans av tjänster. Exempel på CI inkluderar individuella kravdokument, programvara, modeller och planer.



Konfigurationshantering består av följande element:

  • Konfigurationsidentifiering
  • Ändringshantering
  • Konfigurationsstatus redovisning
  • Konfigurationsgranskningar

Diagrammet nedan förklarar dessa komponenter:

Configuration Management Components - Puppet Tutorial - Edureka



Konfigurationsidentifiering: Det är processen att:

  • Märkning av programvara och hårdvarukonfigurationsobjekt med unika identifierare
  • Identifiera dokumentationen som beskriver ett konfigurationsobjekt
  • Gruppera relaterade konfigurationsobjekt i baslinjer
  • Märkning av revisioner av konfigurationsobjekt och baslinjer.

Ändringshantering: Det är ett systematiskt tillvägagångssätt för att hantera förändringar både ur en organisations och individens perspektiv.

Konfigurationsstatus redovisning: den omfattar processen för inspelning och rapportering av konfigurationsobjektbeskrivningar (t.ex. hårdvara, programvara, firmware etc.) och alla avvikelser från baslinjen under design och produktion. I händelse av misstänkta problem kan verifieringen av baslinjekonfigurationen och godkända modifieringar snabbt fastställas.

Konfigurationsgranskningar: Konfigurationsgranskningar ger en mekanism för att bestämma i vilken grad systemets nuvarande tillstånd överensstämmer med den senaste baslinjen och dokumentationen. I grund och botten är det en formell granskning för att verifiera att den produkt som levereras fungerar som annonserad, marknadsförd eller på något sätt som utlovats till kunderna. Den använder den tillgängliga informationen som ett resultat av kvalitetsgranskningarna och testningen tillsammans med konfigurationsstatusens redovisningsinformation för att försäkra sig om att det som krävdes har byggts.

Låt oss förstå Configuration Management med ett användningsfall. Antag att om du måste uppdatera en viss programvara eller om du vill ersätta den, i så fall ska nedanstående flödesschema följas för framgångsrik konfigurationshantering:

vad är en buffradläsare java

Det är nu rätt tid att förstå Puppet Architecture.

Puppet Tutorial - Architecture of Marionett

Puppet använder en Master-Slave-arkitektur. Diagrammet nedan visar samma:

Följande funktioner utförs i bilden ovan:

  • Puppet Agent skickar fakta till Puppet Master. Fakta är i grundennyckel / värde-datapar som representerar någon aspekt av Slave-tillståndet, till exempel dess IP-adress, upptid, operativsystem eller om det är en virtuell maskin. Jag kommer att förklara fakta i detalj senare i bloggen.
  • Puppet Master använder fakta för att sammanställa en katalog som definierar hur slaven ska konfigureras. Katalogär ett dokument som beskriver önskat tillstånd för varje resurs som Puppet Master hanterar på en slav. Jag kommer att förklara kataloger och resurser i detalj senare.
  • Puppet Slave rapporterar tillbaka till Master och indikerar att konfigurationen är klar, vilket syns i Puppet-instrumentpanelen.

Kolla in den här Puppet-självstudievideoen för djup förståelse för Puppet.

Puppet Tutorial för nybörjare | DevOps-utbildning | Edureka

Puppet Tutorial - Puppet Master and Slave Communication

Puppet Master och Slave kommunicerar genomen säker krypterad kanal med hjälp av SSL. Diagrammet nedan visar samma:

Som du kan se från ovanstående bild:

  • Puppet Slave ber om Puppet Master-certifikat.
  • Efter att ha fått Puppet Master-certifikat begär Master om Slave-certifikat.
  • När Master har undertecknat Slave-certifikatet begär Slave om konfiguration / data.
  • Slutligen skickar Puppet Master konfigurationen till Puppet Slave.

Låt oss nu titta på olika Puppet-komponenter.

Puppet Tutorial - Components of Marionett

Manifester: Varje slav har sina konfigurationsdetaljer i Puppet Master, skrivna på det ursprungliga Puppet-språket. Dessa detaljer är skrivna på det språk som Puppet kan förstå och kallas manifest. De består av Puppet-kod och deras filnamn använder .pp förlängning. Dessa är i grunden Puppet-program.
Till exempel: Du kan skriva ett manifest i Puppet Master som skapar en fil och installerar Apache-servern på alla Puppet Slaves som är anslutna till Puppet Master.

Modul: En marionettmodul är en samling manifest och data (som fakta, filer och mallar), och de har en specifik katalogstruktur. Moduler är användbara för att organisera din marionettkod, eftersom de låter dig dela koden i flera manifest. Moduler är fristående paket med kod och data.

Resurs: Resurser är den grundläggande enheten för modellering av systemkonfigurationer. Varje resurs beskriver någon aspekt av ett system, som en specifik tjänst eller ett specifikt paket.

vad är skillnaden mellan javascript och jquery

Fakta: Facter samlar grundläggande information (fakta) om Puppet Slave som hårdvaruinformation, nätverksinställningar, OS-typ och version, IP-adresser, MAC-adresser, SSH-nycklar och mer. Dessa fakta görs sedan tillgängliga i Puppet Master's Manifests som variabler.

Mcollective: Det är ett ramverk som gör att flera jobb kan utföras parallellt på flera slavar. Den utför olika funktioner som:

  • Interagera med kluster av slavar, oavsett om det är i små grupper eller mycket stora distributioner.
  • Använd ett sändningsparadigm för att distribuera förfrågningar. Alla slavar tar emot alla förfrågningar samtidigt, förfrågningar har filter bifogade och endast slavar som matchar filtret kommer att agera på förfrågningar.
  • Använd enkla kommandoradsverktyg för att ringa fjärrslavar.
  • Skriv anpassade rapporter om din infrastruktur.

Kataloger: En katalog beskriver önskat tillstånd för varje hanterad resurs på en slav. Det är en sammanställning av alla resurser som Puppet Master tillämpar på en viss slav, liksom förhållandet mellan dessa resurser.Kataloger sammanställs av en Puppet Master från Manifests och Slave-tillhandahållna data (såsom fakta, certifikat och en miljö om en sådan tillhandahålls), samt en valfri extern data (såsom data från en extern Slave-klassificerare, exporterade resurser, och funktioner). Befälhavaren serverar sedan den sammanställda katalogen till slaven på begäran.

Nu i denna Puppet Tutorial mitt nästa avsnitt kommer att fokusera på Hands-On.

Puppet Tutorial - Hands-On

Jag kommer att visa dig hur du distribuerar MySQL och PHP från Puppet Master till Puppet Slave. Jag använder bara en slav för demonstrationsändamål, det kan finnas hundratals slavar anslutna till en mästare. För att distribuera PHP och MySQL kommer jag att använda fördefinierade moduler tillgängliga på forge.puppet.com. Du kan också skapa dina egna moduler.

Steg 1: I Puppet Master installerar du MySQL- och PHP-moduler.

Utför detta:

1) marionettmodul installera puppetlabs-mysql –version 3.10.0

Denna MySQL-modul installerar, konfigurerar och hanterar MySQL-tjänsten. Den här modulen hanterar både installation och konfiguration av MySQL, samt utökar Puppet för att möjliggöra hantering av MySQL-resurser, såsom databaser, användare och bidrag.

2) marionettmodul installera mayflower-php –version 4.0.0-beta1

Denna modul används för att hantera PHP, i synnerhet php-fpm. PHP-FPM (FastCGI Process Manager) är en alternativ PHP FastCGI-implementering med några ytterligare funktioner som är användbara för webbplatser i alla storlekar, särskilt livligare webbplatser.

Steg 2: I Puppet Manifests ingår MySQL-server och PHP.

Utför detta: vi /etc/puppet/manifests/site.pp

för loopprogram i java

Du kan använda vilken annan redigerare som helst som vim, gedit etc. I denna site.pp-fil lägg till följande:

inkludera ':: mysql :: server' include ':: php'

Spara och avsluta.

Steg 3: Puppet Slaves drar sin konfiguration från Master regelbundet (efter var 30: e minut). Det kommer att utvärdera huvudmanifestet och tillämpa modulen som specificerar MySQL och PHP-installation. Om du vill prova omedelbart måste du köra följande kommando på varje Slave-nod:

Utför detta: marionettagent -t

Så MySQL och PHP installeras framgångsrikt på Slave-noden.

Steg 4: Så här kontrollerar du versionen av MySQL och PHP installerad:

Utför detta:

1) mysql -v

2) php -version

Grattis! MySQl och PHP är igång i din Puppet Slave. Här har jag bara visat dig en slav men tänk om det finns hundratals slavar. I det scenariot blir ditt arbete så enkelt. Ange bara konfigurationerna i Puppet Master och Puppet Slaves utvärderar automatiskt huvudmanifestet och tillämpar modulen som anger MySQL och PHP-installation.

Om du hittade det här Puppet Tutorial relevant, kolla in av Edureka, ett pålitligt inlärningsföretag online med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Edureka DevOps Certification Training-kursen hjälper eleverna att få expertis inom olika DevOps-processer och verktyg som Puppet, Jenkins, Nagios och GIT för att automatisera flera steg i SDLC.