Puppet-zelfstudie - One-stop-oplossing voor configuratiebeheer



Puppet Tutorial is de tweede blog van de Puppet-blogserie. Het gaat over Puppet-architectuur, componenten en een voorbeeld om mysql en php in te zetten met Puppet.

Puppet-zelfstudie

Puppet Tutorial is de tweede blog van de Puppet-blogserie. Ik hoop dat je mijn vorige blog hebt gelezen op ' Wat is Puppet ”Dat uitlegt Configuratiemanagement en waarom het belangrijk is met behulp van use-cases.

In deze Puppet Tutorial komen de volgende onderwerpen aan bod:





Wat is configuratiebeheer?

In mijn vorige blog , Ik heb een inleiding gegeven tot Configuratiemanagement en welke uitdagingen het ons helpt te overwinnen. In deze Puppet Tutorial zal ik je uitleggen over verschillende onderling afhankelijke activiteiten van Configuration Management.Maar laten we eerst begrijpen wat het is Configuratie-item (CI). Een configuratie-item is een servicecomponent, infrastructuurelement of ander item dat moet worden beheerd om de succesvolle levering van services te garanderen. Voorbeelden van CI zijn documenten met individuele vereisten, software, modellen en plannen.



Configuratiemanagement bestaat uit de volgende elementen:

  • Configuratie-identificatie
  • Veranderingsmanagement
  • Configuratiestatusboekhouding
  • Configuratie-audits

In het onderstaande diagram worden deze componenten uitgelegd:

Componenten voor configuratiebeheer - Puppet-zelfstudie - Edureka



Configuratie-identificatie: Het is het proces van:

  • Labelen van software- en hardwareconfiguratie-items met unieke ID's
  • Identificatie van de documentatie die een configuratie-item beschrijft
  • Groeperen van gerelateerde configuratie-items in basislijnen
  • Labelen van revisies op configuratie-items en basislijnen.

Veranderingsmanagement: Het is een systematische benadering om met verandering om te gaan, zowel vanuit het perspectief van een organisatie als vanuit het individu.

Configuratiestatus Accounting: Het omvat het proces van het vastleggen en rapporteren van beschrijvingen van configuratie-items (bijv. hardware, software, firmware, enz.) en alle afwijkingen van de basislijn tijdens ontwerp en productie. Bij vermoede problemen kan de verificatie van de basislijnconfiguratie en goedgekeurde aanpassingen snel worden bepaald.

Configuratie-audits: Configuratie-audits bieden een mechanisme om te bepalen in hoeverre de huidige status van het systeem consistent is met de nieuwste basislijn en documentatie. In feite is het een formele beoordeling om te verifiëren dat het product dat wordt geleverd, zal werken zoals geadverteerd, gepromoot of op enigerlei wijze is beloofd aan de klanten. Het gebruikt de informatie die beschikbaar is als resultaat van de kwaliteitsaudits en testen samen met de accountinginformatie van de configuratiestatus, om zekerheid te bieden dat wat nodig was, is opgebouwd.

Laten we Configuration Management begrijpen met een use-case. Stel dat als u een bepaalde software moet updaten of deze wilt vervangen, in dat geval het onderstaande stroomschema moet worden gevolgd voor succesvol Configuratiebeheer:

Dit is het juiste moment om Puppet Architecture te begrijpen.

Puppet Tutorial - Architectuur van Marionet

Puppet gebruikt een Master-Slave-architectuur. Het onderstaande diagram toont hetzelfde:

De volgende functies worden uitgevoerd in de bovenstaande afbeelding:

  • De Puppet Agent stuurt de feiten naar de Puppet Master. Feiten zijn in feitesleutel / waarde-gegevenspaar dat een bepaald aspect van de Slave-status vertegenwoordigt, zoals het IP-adres, de up-time, het besturingssysteem of of het een virtuele machine is. Ik zal Feiten later in de blog in detail uitleggen.
  • Puppet Master gebruikt de feiten om een ​​catalogus samen te stellen die definieert hoe de Slave moet worden geconfigureerd. Catalogusis een document dat de gewenste status beschrijft voor elke bron die Puppet Master beheert op een Slave. Ik zal catalogi en bronnen later in detail toelichten.
  • Puppet Slave rapporteert terug aan Master om aan te geven dat de configuratie is voltooid, wat zichtbaar is in het Puppet-dashboard.

Bekijk deze Puppet-instructievideo voor een grondig begrip van Puppet.

Puppet-zelfstudie voor beginners | DevOps-training | Edureka

Puppet Tutorial - Puppet Master and Slave Communication

Puppet Master and Slave communiceren dooreen veilig gecodeerd kanaal met behulp van SSL. Het onderstaande diagram toont hetzelfde:

Zoals je kunt zien in de bovenstaande afbeelding:

  • Puppet Slave vraagt ​​om Puppet Master-certificaat.
  • Na ontvangst van het Puppet Master-certificaat, vraagt ​​de Master om een ​​Slave-certificaat.
  • Zodra Master het Slavecertificaat heeft ondertekend, vraagt ​​Slave om configuratie / gegevens.
  • Ten slotte stuurt Puppet Master de configuratie naar Puppet Slave.

Laten we nu eens kijken naar verschillende Puppet-componenten.

Puppet Tutorial - Componenten van Marionet

Manifesten: Elke Slave heeft zijn configuratiedetails in Puppet Master, geschreven in de moedertaal van Puppet. Deze details zijn geschreven in de taal die Puppet kan begrijpen en worden Manifests genoemd. Ze zijn samengesteld uit Puppet-code en hun bestandsnamen gebruiken de .pp uitbreiding. Dit zijn in feite Puppet-programma's.
Bijvoorbeeld: u kunt een manifest in Puppet Master schrijven dat een bestand aanmaakt en de Apache-server installeert op alle Puppet Slaves die met de Puppet Master zijn verbonden.

Module: Een Puppet Module is een verzameling Manifesten en gegevens (zoals feiten, bestanden en sjablonen), en ze hebben een specifieke directorystructuur. Modules zijn handig voor het organiseren van uw Puppet-code, omdat u hiermee uw code in meerdere Manifesten kunt splitsen. Modules zijn op zichzelf staande bundels code en gegevens.

Bron: Hulpbronnen zijn de fundamentele eenheid voor het modelleren van systeemconfiguraties. Elke bron beschrijft een bepaald aspect van een systeem, zoals een specifieke service of pakket.

Karakter: Facter verzamelt basisinformatie (feiten) over Puppet Slave, zoals hardwaregegevens, netwerkinstellingen, type besturingssysteem en versie, IP-adressen, MAC-adressen, SSH-sleutels en meer. Deze feiten worden vervolgens als variabelen beschikbaar gesteld in Puppet Master's Manifests.

Mcollective: Het is een raamwerk waarmee meerdere jobs parallel op meerdere Slaves kunnen worden uitgevoerd. Het voert verschillende functies uit, zoals:

  • Werk samen met clusters van Slaves, zowel in kleine groepen als in zeer grote implementaties.
  • Gebruik een uitzendparadigma om verzoeken te verspreiden. Alle Slaves ontvangen alle verzoeken tegelijkertijd, verzoeken zijn voorzien van filters, en alleen Slaves die aan het filter voldoen, reageren op verzoeken.
  • Gebruik eenvoudige opdrachtregelprogramma's om slaven op afstand te bellen.
  • Schrijf aangepaste rapporten over uw infrastructuur.

Catalogi: Een catalogus beschrijft de gewenste status van elke beheerde bron op een slaaf. Het is een compilatie van alle bronnen die de Puppet Master toepast op een bepaalde Slave, evenals de relaties tussen die bronnen.Catalogi worden samengesteld door een Puppet Master van Manifests en door Slave verstrekte gegevens (zoals feiten, certificaten en een eventuele omgeving), evenals optionele externe gegevens (zoals gegevens van een externe Slave-classificator, geëxporteerde bronnen, en functies). De Master biedt de gecompileerde Catalogus vervolgens aan de Slave wanneer daarom wordt gevraagd.

Nu in deze Puppet Tutorial zal mijn volgende sectie zich concentreren op Hands-On.

Puppet Tutorial - Hands-On

Ik zal je laten zien hoe je MySQL en PHP implementeert van Puppet Master naar Puppet Slave. Ik gebruik slechts één Slave voor demonstratiedoeleinden. Er kunnen honderden Slaves zijn aangesloten op één Master. Om PHP en MySQL te implementeren, zal ik vooraf gedefinieerde modules gebruiken die beschikbaar zijn op forge.puppet.com. U kunt ook uw eigen modules maken.

Stap 1: Installeer in Puppet Master MySQL- en PHP-modules.

Voer dit uit:

1) puppet module installeer puppetlabs-mysql –versie 3.10.0

Deze MySQL-module installeert, configureert en beheert de MySQL-service. Deze module beheert zowel de installatie als de configuratie van MySQL, en breidt Puppet uit om het beheer van MySQL-bronnen mogelijk te maken, zoals databases, gebruikers en subsidies.

2) puppet module installeer mayflower-php –versie 4.0.0-beta1

Deze module wordt gebruikt voor het beheer van PHP, in het bijzonder php-fpm. PHP-FPM (FastCGI Process Manager) is een alternatieve PHP FastCGI-implementatie met enkele extra functies die handig zijn voor sites van elke grootte, vooral voor drukkere sites.

Stap 2: In Puppet Manifests zijn MySQL-server en PHP opgenomen.

Voer dit uit: vi /etc/puppet/manifests/site.pp

Je kunt ook elke andere editor gebruiken zoals vim, gedit etc. Voeg in dit site.pp-bestand het volgende toe:

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

Opslaan en afsluiten.

Stap 3: Puppet Slaves haalt zijn configuratie periodiek uit de Master (na elke 30 minuten). Het evalueert het hoofdmanifest en past de module toe die de MySQL- en PHP-instellingen specificeert. Als u het onmiddellijk wilt uitproberen, moet u het volgende commando op elk Slave-knooppunt uitvoeren:

Voer dit uit: poppenspeler -t

Dus MySQL en PHP zijn met succes geïnstalleerd op de Slave-node.

Stap 4: Om de geïnstalleerde versie van MySQL en PHP te controleren:

Voer dit uit:

1) mysql -v

hoe array in php

2) php -versie

Gefeliciteerd! MySQl en PHP zijn actief in uw Puppet Slave. Hier heb ik je maar één slaaf laten zien, maar stel je voor dat er honderden slaven zijn. In dat scenario wordt uw werk zo gemakkelijk. Specificeer gewoon de configuraties in Puppet Master en Puppet Slaves zal automatisch het hoofdmanifest evalueren en de module toepassen die MySQL- en PHP-instellingen specificeert.

Als je dit hebt gevonden Puppet-zelfstudie relevant, bekijk de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De Edureka DevOps Certification Training-cursus helpt leerlingen expertise te verwerven in verschillende DevOps-processen en tools zoals Puppet, Jenkins, Nagios en GIT voor het automatiseren van meerdere stappen in SDLC.