Puppet Tutorial - One-stop-løsning til konfigurationsstyring



Puppet Tutorial er den anden blog i Puppet blog-serien. Det taler om Puppet-arkitektur, komponenter og et eksempel til implementering af mysql & php ved hjælp af Puppet.

Marionettevejledning

Puppet Tutorial er den anden blog i Puppet blog-serien. Jeg håber, du har læst min tidligere blog om “ Hvad er marionet ”Der forklarer Configuration Management, og hvorfor det er vigtigt ved hjælp af use-cases.

I denne Marionettevejledning vil følgende emner blive dækket:





Hvad er Configuration Management?

I min forrige blog , Jeg har givet en introduktion til Configuration Management, og hvilke udfordringer det hjælper os med at overvinde. I denne Puppet Tutorial forklarer jeg dig om forskellige indbyrdes afhængige aktiviteter i Configuration Management.Men inden det, lad os forstå, hvad der er Konfigurationselement (CI). Et konfigurationselement er enhver servicekomponent, infrastrukturelement eller andet element, der skal styres for at sikre en vellykket levering af tjenester. Eksempler på CI inkluderer individuelle kravsdokumenter, software, modeller og planer.



Konfigurationsstyring består af følgende elementer:

  • Konfigurationsidentifikation
  • Forandringsledelse
  • Konfigurationsstatus Regnskab
  • Konfigurationsrevisioner

Diagrammet nedenfor forklarer disse komponenter:

Konfigurationsstyringskomponenter - Marionettevejledning - Edureka



Konfigurationsidentifikation: Det er processen med:

  • Mærkning af software- og hardwarekonfigurationselementer med unikke identifikatorer
  • Identificering af dokumentationen, der beskriver et konfigurationselement
  • Gruppering af relaterede konfigurationselementer i basislinjer
  • Mærkning af revisioner af konfigurationselementer og basislinjer.

Forandringsledelse: Det er en systematisk tilgang til at håndtere forandringer både ud fra en organisations og individets perspektiv.

Konfigurationsstatus Regnskab: Det inkluderer processen med registrering og rapportering af konfigurationsartikelbeskrivelser (f.eks. hardware, software, firmware osv.) og alle afvigelser fra basislinjen under design og produktion. I tilfælde af mistanke om problemer kan verifikation af baseline-konfiguration og godkendte ændringer hurtigt bestemmes.

Konfigurationsrevisioner: Konfigurationsrevisioner giver en mekanisme til at bestemme, i hvilken grad systemets aktuelle tilstand er i overensstemmelse med den seneste baseline og dokumentation. Dybest set er det en formel gennemgang for at kontrollere, at det produkt, der leveres, fungerer som annonceret, promoveret eller på nogen måde lovet kunderne. Den bruger de tilgængelige oplysninger som et resultat af kvalitetsrevisionerne og testene sammen med konfigurationsstatusregnskabsoplysningerne for at give sikkerhed for, at det, der var nødvendigt, er blevet bygget.

Lad os forstå Configuration Management med en use-case. Antag, at hvis du skal opdatere en bestemt software, eller du vil erstatte den, skal nedenstående flowchart følges for en vellykket konfigurationsstyring:

Det er nu det rigtige tidspunkt at forstå Puppet Architecture.

Marionettevejledning - Arkitektur af Marionet

Marionet bruger en Master-Slave-arkitektur. Diagrammet nedenfor viser det samme:

Følgende funktioner udføres i ovenstående billede:

  • Puppet Agent sender fakta til Puppet Master. Fakta er dybest setnøgle / værdidata-par, der repræsenterer et eller andet aspekt af Slave-tilstand, såsom dens IP-adresse, up-time, operativsystem, eller om det er en virtuel maskine. Jeg vil forklare fakta detaljeret senere i bloggen.
  • Puppet Master bruger fakta til at kompilere et katalog, der definerer, hvordan Slave skal konfigureres. Kataloger et dokument, der beskriver den ønskede tilstand for hver ressource, som Puppet Master administrerer på en slave. Jeg vil forklare kataloger og ressourcer i detaljer senere.
  • Puppet Slave rapporterer tilbage til Master, hvilket indikerer, at konfigurationen er fuldført, hvilket er synligt i Puppet-instrumentbrættet.

Tjek denne Puppet tutorial video for dyb forståelse af Puppet.

Marionettevejledning til begyndere | DevOps-træning | Edureka

Puppet Tutorial - Puppet Master and Slave Communication

Marionetmester og slave kommunikerer igennemen sikker krypteret kanal ved hjælp af SSL. Diagrammet nedenfor viser det samme:

Som du kan se fra ovenstående billede:

  • Puppet Slave beder om Puppet Master-certifikat.
  • Efter modtagelse af Puppet Master-certifikat anmoder Master om Slave-certifikat.
  • Når Master har underskrevet Slave-certifikatet, anmoder Slave om konfiguration / data.
  • Endelig sender Puppet Master konfigurationen til Puppet Slave.

Lad os nu se på forskellige marionetkomponenter.

Marionettevejledning - Komponenter af Marionet

Manifester: Hver slave har sine konfigurationsoplysninger i Puppet Master, skrevet på det oprindelige Puppet-sprog. Disse detaljer er skrevet på det sprog, som Puppet kan forstå, og betegnes som manifest. De er sammensat af dukkekode, og deres filnavne bruger .pp udvidelse. Disse er dybest set dukkeprogrammer.
For eksempel: Du kan skrive en manifest i Puppet Master, der opretter en fil og installerer Apache-server på alle Puppet Slaves, der er tilsluttet Puppet Master.

Modul: Et marionetmodul er en samling af manifest og data (såsom fakta, filer og skabeloner), og de har en specifik katalogstruktur. Moduler er nyttige til at organisere din Puppet-kode, fordi de giver dig mulighed for at opdele din kode i flere manifest. Moduler er selvstændige bundter med kode og data.

Ressource: Ressourcer er den grundlæggende enhed til modellering af systemkonfigurationer. Hver ressource beskriver et eller andet aspekt af et system, som en bestemt tjeneste eller pakke.

Fakta: Facter indsamler grundlæggende oplysninger (fakta) om Puppet Slave såsom hardwareoplysninger, netværksindstillinger, OS-type og version, IP-adresser, MAC-adresser, SSH-nøgler og mere. Disse fakta gøres derefter tilgængelige i Puppet Master's Manifests som variabler.

Mcollective: Det er en ramme, der gør det muligt at udføre flere job parallelt på flere slaver. Det udfører forskellige funktioner som:

  • Interagere med klynger af slaver, hvad enten det er i små grupper eller meget store implementeringer.
  • Brug et udsendelsesparadigme til at distribuere anmodninger. Alle slaver modtager alle anmodninger på samme tid, anmodninger har vedhæftede filtre, og kun slaver, der matcher filteret, fungerer på anmodninger.
  • Brug enkle kommandolinjeværktøjer til at kalde fjerntliggende slaver.
  • Skriv tilpassede rapporter om din infrastruktur.

Kataloger: Et katalog beskriver den ønskede tilstand for hver administreret ressource på en slave. Det er en samling af alle de ressourcer, som Puppet Master anvender på en given slave, såvel som forholdet mellem disse ressourcer.Kataloger er udarbejdet af en Puppet Master fra Manifests og Slave-leverede data (såsom fakta, certifikater og et miljø, hvis en leveres) samt valgfri eksterne data (såsom data fra en ekstern Slave-klassifikator, eksporterede ressourcer, og funktioner). Skibsføreren serverer derefter det kompilerede katalog til slaven, når det ønskes.

Nu i denne Marionettevejledning vil mit næste afsnit fokusere på Hands-On.

Puppet Tutorial - Hands-On

Jeg vil vise dig, hvordan du implementerer MySQL og PHP fra Puppet Master til Puppet Slave. Jeg bruger kun en slave til demonstrationsformål. Der kan være hundreder af slaver forbundet til en mester. For at implementere PHP og MySQL vil jeg bruge foruddefinerede moduler tilgængelige på forge.puppet.com. Du kan også oprette dine egne moduler.

Trin 1: I Puppet Master installeres MySQL- og PHP-moduler.

Udfør dette:

1) marionetmodul installerer puppetlabs-mysql –version 3.10.0

Dette MySQL-modul installerer, konfigurerer og administrerer MySQL-tjenesten. Dette modul styrer både installation og konfiguration af MySQL samt udvidelse af Puppet til at muliggøre styring af MySQL-ressourcer, såsom databaser, brugere og tilskud.

2) marionetmodul installerer mayflower-php –version 4.0.0-beta1

Dette modul bruges til styring af PHP, især php-fpm. PHP-FPM (FastCGI Process Manager) er en alternativ PHP FastCGI-implementering med nogle ekstra funktioner, der er nyttige til websteder af enhver størrelse, især travlere websteder.

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

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

Du kan bruge en hvilken som helst anden editor så som vim, gedit osv. I denne site.pp-fil skal du tilføje følgende:

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

Gem og afslut.

Trin 3: Puppet Slaves trækker sin konfiguration fra Master med jævne mellemrum (efter hvert 30. minut). Det evaluerer hovedmanifestet og anvender modulet, der specificerer MySQL og PHP-opsætning. Hvis du vil prøve det med det samme, skal du køre følgende kommando på hver Slave-node:

Udfør dette: marionet agent -t

Så MySQL og PHP er installeret med succes på Slave-noden.

Trin 4: Sådan kontrolleres versionen af ​​MySQL og PHP installeret:

Udfør dette:

1) mysql -v

2) php -version

Tillykke! MySQl og PHP er i gang i din Puppet Slave. Her har jeg kun vist dig en slave, men forestil dig, om der er hundreder af slaver. I dette scenarie bliver dit arbejde så let. Angiv bare konfigurationerne i Puppet Master og Puppet Slaves vil automatisk evaluere hovedmanifestet og anvende modulet, der specificerer MySQL og PHP-opsætning.

ssis tutorial for begyndere 2012 med eksempler

Hvis du fandt dette Marionettevejledning relevant, tjek den af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edureka DevOps-certificeringskursus hjælper elever med at få ekspertise i forskellige DevOps-processer og -værktøjer såsom Puppet, Jenkins, Nagios og GIT til automatisering af flere trin i SDLC.