Puppet Tutorial - One Stop Solution For Configuration Management



Puppet Tutorial er den andre bloggen i Puppet blog-serien. Det snakker om Puppet-arkitektur, komponenter og et eksempel for å distribuere mysql & php ved hjelp av Puppet.

Dukkeopplæring

Puppet Tutorial er den andre bloggen i Puppet blog-serien. Jeg håper du har lest min forrige blogg på “ Hva er Puppet ”Som forklarer Configuration Management og hvorfor det er viktig ved hjelp av use-cases.

I denne dukkeopplæringen vil følgende emner bli dekket:



Hva er Configuration Management?

I min forrige blogg , Jeg har gitt en introduksjon til Configuration Management og hvilke utfordringer det hjelper oss å overvinne. I denne dukkeopplæringen vil jeg forklare deg om forskjellige gjensidig avhengige aktiviteter i Configuration Management.Men før det, la oss forstå hva som er Konfigurasjonselement (CI). Et konfigurasjonselement er en hvilken som helst tjenestekomponent, infrastrukturelement eller annet element som må styres for å sikre vellykket levering av tjenester. Eksempler på CI inkluderer individuelle kravsdokumenter, programvare, modeller og planer.



Configuration Management består av følgende elementer:

  • Konfigurasjonsidentifikasjon
  • Endringsledelse
  • Konfigurasjonsstatusregnskap
  • Konfigurasjonsrevisjoner

Diagrammet nedenfor forklarer disse komponentene:

Configuration Management Components - Puppet Tutorial - Edureka



Konfigurasjonsidentifikasjon: Det er prosessen med:

  • Merking av programvare og maskinvarekonfigurasjonselementer med unike identifikatorer
  • Identifisere dokumentasjonen som beskriver et konfigurasjonselement
  • Gruppere relaterte konfigurasjonselementer i grunnlinjer
  • Merking av revisjoner av konfigurasjonselementer og grunnlinjer.

Endringsledelse: Det er en systematisk tilnærming til å håndtere endringer både fra perspektivet til en organisasjon og individet.

Konfigurasjonsstatusregnskap: Den inkluderer prosessen med å registrere og rapportere konfigurasjonsbeskrivelser (f.eks. maskinvare, programvare, firmware osv.) og alle avvik fra grunnlinjen under design og produksjon. I tilfelle mistanke om problemer, kan verifisering av grunnlinjekonfigurasjon og godkjente modifikasjoner raskt bestemmes.

Konfigurasjonsrevisjoner: Konfigurasjonsrevisjoner gir en mekanisme for å bestemme i hvilken grad systemets nåværende tilstand er i samsvar med den siste grunnlinjen og dokumentasjonen. I utgangspunktet er det en formell gjennomgang for å verifisere at produktet som leveres vil fungere som annonsert, markedsført eller på noen måte lovet kundene. Den bruker informasjonen som er tilgjengelig som et resultat av kvalitetsrevisjoner og testing sammen med konfigurasjonsstatus regnskapsinformasjon, for å gi sikkerhet for at det som kreves har blitt bygget.

La oss forstå Configuration Management med en use-case. Anta at hvis du må oppdatere en bestemt programvare eller du vil erstatte den, i så fall bør nedenstående flytskjema følges for vellykket konfigurasjonsadministrasjon:

Nå er det riktig tidspunkt å forstå Puppet Architecture.

Puppet Tutorial - Architecture of Marionett

Puppet bruker en Master-Slave-arkitektur. Diagrammet nedenfor viser det samme:

Følgende funksjoner utføres i bildet ovenfor:

  • Puppet Agent sender fakta til Puppet Master. Fakta er i utgangspunktetnøkkel / verdidatapar som representerer et eller annet aspekt av Slave-tilstanden, for eksempel IP-adressen, oppetid, operativsystem, eller om det er en virtuell maskin. Jeg vil forklare fakta i detalj senere i bloggen.
  • Puppet Master bruker fakta til å lage en katalog som definerer hvordan Slave skal konfigureres. Kataloger et dokument som beskriver ønsket tilstand for hver ressurs som Puppet Master administrerer på en slave. Jeg vil forklare kataloger og ressurser i detalj senere.
  • Puppet Slave rapporterer tilbake til Master og indikerer at konfigurasjonen er fullført, som er synlig i Puppet dashboard.

Sjekk ut denne Puppet-opplæringsvideoen for dyp forståelse av Puppet.

Dukkeopplæring for nybegynnere | DevOps-trening | Edureka

Puppet Tutorial - Puppet Master and Slave Communication

Dukkemester og slave kommuniserer gjennomen sikker kryptert kanal ved hjelp av SSL. Diagrammet nedenfor viser det samme:

Som du kan se fra bildet ovenfor:

  • Puppet Slave ber om Puppet Master-sertifikat.
  • Etter å ha mottatt Puppet Master Certificate, Master forespørsler om Slave Certificate.
  • Når Master har signert Slave-sertifikatet, ber Slave om konfigurasjon / data.
  • Til slutt vil Puppet Master sende konfigurasjonen til Puppet Slave.

La oss nå ta en titt på forskjellige Puppet-komponenter.

Puppet Tutorial - Components of Marionett

Manifester: Hver slave har sine konfigurasjonsdetaljer i Puppet Master, skrevet på det opprinnelige dukkespråket. Disse detaljene er skrevet på språket Puppet kan forstå og blir betegnet som manifest. De består av Puppet-kode, og filnavnene bruker .pp Utvidelse. Dette er i utgangspunktet dukkeprogrammer.
For eksempel: Du kan skrive et manifest i Puppet Master som oppretter en fil og installerer Apache-server på alle Puppet Slaves som er koblet til Puppet Master.

Modul: En Puppet Module er en samling av manifest og data (som fakta, filer og maler), og de har en spesifikk katalogstruktur. Moduler er nyttige for å organisere dukkekoden, fordi de lar deg dele koden din i flere manifest. Moduler er selvstendige pakker med kode og data.

hvordan konvertere et tall til binært i python

Ressurs: Ressurser er den grunnleggende enheten for modellering av systemkonfigurasjoner. Hver ressurs beskriver noen aspekter av et system, som en bestemt tjeneste eller pakke.

Fakta: Facter samler grunnleggende informasjon (fakta) om Puppet Slave, for eksempel maskinvaredetaljer, nettverksinnstillinger, OS-type og versjon, IP-adresser, MAC-adresser, SSH-nøkler og mer. Disse fakta blir deretter gjort tilgjengelig i Puppet Master’s Manifests som variabler.

Mcollective: Det er et rammeverk som gjør at flere jobber kan utføres parallelt på flere slaver. Den utfører forskjellige funksjoner som:

  • Samhandle med klynger av slaver, enten det er i små grupper eller veldig store distribusjoner.
  • Bruk et kringkastingsparadigme til å distribuere forespørsler. Alle slaver mottar alle forespørsler samtidig, forespørsler har filtre vedlagt, og bare slaver som samsvarer med filteret, vil reagere på forespørsler.
  • Bruk enkle kommandolinjeverktøy for å ringe eksterne slaver.
  • Skriv tilpassede rapporter om infrastrukturen din.

Kataloger: En katalog beskriver ønsket tilstand for hver administrerte ressurs på en slave. Det er en samling av alle ressursene som dukkemesteren bruker på en gitt slave, samt forholdet mellom disse ressursene.Kataloger er samlet av en Puppet Master fra Manifests og Slave-data (som fakta, sertifikater og et miljø hvis det er gitt), samt valgfrie eksterne data (for eksempel data fra en ekstern Slave-klassifikator, eksporterte ressurser, og funksjoner). Mesteren serverer deretter den kompilerte katalogen til slaven når du blir bedt om det.

Nå i denne dukkeopplæringen vil min neste seksjon fokusere på hands-on.

Puppet Tutorial - Hands-On

Jeg vil vise deg hvordan du distribuerer MySQL og PHP fra Puppet Master til Puppet Slave. Jeg bruker bare en slave for demonstrasjonsformål. Det kan være hundrevis av slaver koblet til en mester. For å distribuere PHP og MySQL vil jeg bruke forhåndsdefinerte moduler tilgjengelig på forge.puppet.com. Du kan også lage dine egne moduler.

Trinn 1: I Puppet Master installerer du MySQL- og PHP-moduler.

Utfør dette:

1) marionettmodul installerer puppetlabs-mysql –versjon 3.10.0

Denne MySQL-modulen installerer, konfigurerer og administrerer MySQL-tjenesten. Denne modulen styrer både installasjon og konfigurasjon av MySQL, samt utvide Puppet for å tillate administrasjon av MySQL-ressurser, for eksempel databaser, brukere og tilskudd.

2) dukkemodul installerer mayflower-php –versjon 4.0.0-beta1

Denne modulen brukes til å administrere PHP, spesielt php-fpm. PHP-FPM (FastCGI Process Manager) er en alternativ PHP FastCGI-implementering med noen tilleggsfunksjoner som er nyttige for nettsteder i alle størrelser, spesielt travlere nettsteder.

Steg 2: I Puppet Manifests inkluderer MySQL-server og PHP.

Utfør dette: vi /etc/puppet/manifests/site.pp

Du kan bruke en hvilken som helst annen editor, for eksempel vim, gedit etc. I denne site.pp-filen legger du til følgende:

inkluderer ':: mysql :: server' include ':: php'

Lagre og avslutt.

Trinn 3: Puppet Slaves trekker sin konfigurasjon fra Master med jevne mellomrom (etter hvert 30. minutt). Den vil evaluere hovedmanifestet og bruke modulen som spesifiserer MySQL og PHP-oppsett. Hvis du vil prøve det umiddelbart, må du kjøre følgende kommando på hver Slave-node:

Utfør dette: dukke agent -t

koblet liste i c tutorial

Så MySQL og PHP er vellykket installert på Slave-noden.

Trinn 4: Slik sjekker du versjonen av MySQL og PHP som er installert:

Utfør dette:

1) mysql -v

2) php -versjon

Gratulerer! MySQl og PHP er i gang i Puppet Slave. Her har jeg bare vist deg en slave, men forestill deg om det er hundrevis av slaver. I det scenariet blir arbeidet ditt så enkelt. Bare spesifiser konfigurasjonene i Puppet Master og Puppet Slaves vil automatisk evaluere hovedmanifestet og bruke modulen som spesifiserer MySQL og PHP-oppsett.

Hvis du fant dette Dukkeopplæring relevant, sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden. Edureka DevOps Certification Training-kurset hjelper elever å få ekspertise i forskjellige DevOps-prosesser og verktøy som Puppet, Jenkins, Nagios og GIT for å automatisere flere trinn i SDLC.