Puppet Tutorial - One-Stop-Lösung für das Konfigurationsmanagement



Puppet Tutorial ist das zweite Blog der Puppet-Blogserie. Es geht um die Puppet-Architektur, Komponenten und ein Beispiel für die Bereitstellung von MySQL und PHP mit Puppet.

Puppen-Tutorial

Puppet Tutorial ist das zweite Blog der Puppet-Blogserie. Ich hoffe, Sie haben meinen vorherigen Blog über „ Was ist Marionette? Das erklärt Configuration Management und warum es mit Hilfe von Anwendungsfällen wichtig ist.

In diesem Puppen-Tutorial werden folgende Themen behandelt:





Was ist Konfigurationsmanagement?

In meinem vorheriger Blog , Ich habe eine Einführung in das Konfigurationsmanagement gegeben und welche Herausforderungen es uns zu bewältigen hilft. In diesem Puppet Tutorial erkläre ich Ihnen verschiedene voneinander abhängige Aktivitäten von Configuration Management.Aber lassen Sie uns vorher verstehen, was ist Konfigurationselement (CI). Ein Konfigurationselement ist eine Dienstkomponente, ein Infrastrukturelement oder ein anderes Element, das verwaltet werden muss, um die erfolgreiche Bereitstellung von Diensten sicherzustellen. Beispiele für CI sind individuelle Anforderungsdokumente, Software, Modelle und Pläne.



Das Konfigurationsmanagement besteht aus folgenden Elementen:

Wie installiere ich PHP?
  • Konfigurationsidentifikation
  • Änderungsmanagement
  • Konfigurationsstatus-Abrechnung
  • Konfigurationsprüfungen

Das folgende Diagramm erläutert diese Komponenten:

Konfigurationsmanagement-Komponenten - Puppet Tutorial - Edureka



Konfigurationsidentifikation: Es ist der Prozess von:

  • Beschriften von Software- und Hardwarekonfigurationselementen mit eindeutigen Kennungen
  • Identifizieren der Dokumentation, die ein Konfigurationselement beschreibt
  • Gruppieren verwandter Konfigurationselemente in Baselines
  • Beschriftungsrevisionen für Konfigurationselemente und Baselines.

Änderungsmanagement: Es ist ein systematischer Ansatz, um mit Veränderungen sowohl aus der Sicht einer Organisation als auch des Einzelnen umzugehen.

Konfigurationsstatus Buchhaltung: Es umfasst den Prozess des Aufzeichnens und Berichtsens von Konfigurationselementbeschreibungen (z. B. Hardware, Software, Firmware usw.) und aller Abweichungen von der Basislinie während des Entwurfs und der Produktion. Bei Verdacht auf Probleme kann die Überprüfung der Basiskonfiguration und der genehmigten Änderungen schnell ermittelt werden.

Konfigurationsprüfungen: Konfigurationsprüfungen bieten einen Mechanismus zum Bestimmen, inwieweit der aktuelle Status des Systems mit der neuesten Basislinie und Dokumentation übereinstimmt. Grundsätzlich handelt es sich um eine formelle Überprüfung, um sicherzustellen, dass das gelieferte Produkt wie beworben, beworben oder in irgendeiner Weise den Kunden versprochen funktioniert. Es verwendet die verfügbaren Informationen als Ergebnis der Qualitätsprüfungen und -tests zusammen mit den Informationen zur Konfiguration des Konfigurationsstatus, um sicherzustellen, dass die erforderlichen Informationen erstellt wurden.

Lassen Sie uns Configuration Management anhand eines Anwendungsfalls verstehen. Angenommen, Sie müssen eine bestimmte Software aktualisieren oder ersetzen. In diesem Fall sollte das folgende Flussdiagramm für ein erfolgreiches Konfigurationsmanagement befolgt werden:

Jetzt ist der richtige Zeitpunkt, um die Puppenarchitektur zu verstehen.

Puppet Tutorial - Architektur von Marionette

Puppet verwendet eine Master-Slave-Architektur. Das folgende Diagramm zeigt dasselbe:

Die folgenden Funktionen werden im obigen Bild ausgeführt:

  • Der Puppet Agent sendet die Fakten an den Puppet Master. Fakten sind im GrundeSchlüssel / Wert-Datenpaar, das einen Aspekt des Slave-Status darstellt, z. B. IP-Adresse, Betriebszeit, Betriebssystem oder ob es sich um eine virtuelle Maschine handelt. Ich werde die Fakten später im Blog ausführlich erläutern.
  • Puppet Master verwendet die Fakten, um einen Katalog zu erstellen, der definiert, wie der Slave konfiguriert werden soll. Katalogist ein Dokument, das den gewünschten Status für jede Ressource beschreibt, die Puppet Master auf einem Slave verwaltet. Ich werde Kataloge und Ressourcen später ausführlich erläutern.
  • Puppet Slave meldet sich beim Master zurück und zeigt an, dass die Konfiguration abgeschlossen ist. Dies wird im Puppet-Dashboard angezeigt.

Schauen Sie sich dieses Puppet-Tutorial-Video an, um ein tiefes Verständnis von Puppet zu erhalten.

Puppen-Tutorial für Anfänger | DevOps Training | Edureka

Puppet Tutorial - Puppet Master und Slave Kommunikation

Puppet Master und Slave kommunizieren durchein sicherer verschlüsselter Kanal mit Hilfe von SSL. Das folgende Diagramm zeigt dasselbe:

Wie Sie aus dem obigen Bild sehen können:

  • Puppet Slave fragt nach dem Puppet Master Zertifikat.
  • Nach Erhalt des Puppet Master-Zertifikats fordert der Master das Slave-Zertifikat an.
  • Sobald der Master das Slave-Zertifikat signiert hat, fordert der Slave Konfiguration / Daten an.
  • Schließlich sendet Puppet Master die Konfiguration an Puppet Slave.

Schauen wir uns nun verschiedene Puppet-Komponenten an.

Puppet Tutorial - Komponenten von Marionette

Manifeste: Jeder Slave hat seine Konfigurationsdetails in Puppet Master, geschrieben in der Muttersprache Puppet. Diese Details sind in der Sprache verfasst, die Puppet verstehen kann, und werden als Manifeste bezeichnet. Sie bestehen aus Puppet-Code und ihre Dateinamen verwenden die .pp Erweiterung. Dies sind im Grunde Marionettenprogramme.
Beispiel: Sie können ein Manifest in Puppet Master schreiben, das eine Datei erstellt und den Apache-Server auf allen mit dem Puppet Master verbundenen Puppet Slaves installiert.

Modul: Ein Puppenmodul ist eine Sammlung von Manifesten und Daten (wie Fakten, Dateien und Vorlagen), die eine bestimmte Verzeichnisstruktur haben. Module sind nützlich für die Organisation Ihres Puppet-Codes, da Sie Ihren Code in mehrere Manifeste aufteilen können. Module sind in sich geschlossene Bündel von Code und Daten.

Ressource: Ressourcen sind die grundlegende Einheit für die Modellierung von Systemkonfigurationen. Jede Ressource beschreibt einen Aspekt eines Systems, z. B. einen bestimmten Dienst oder ein bestimmtes Paket.

Facter: Facter sammelt grundlegende Informationen (Fakten) über Puppet Slave wie Hardwaredetails, Netzwerkeinstellungen, Betriebssystemtyp und -version, IP-Adressen, MAC-Adressen, SSH-Schlüssel und mehr. Diese Fakten werden dann in den Manifesten des Puppenmeisters als Variablen zur Verfügung gestellt.

Mcollective: Es ist ein Framework, mit dem mehrere Jobs gleichzeitig auf mehreren Slaves ausgeführt werden können. Es führt verschiedene Funktionen aus wie:

  • Interagieren Sie mit Clustern von Slaves, ob in kleinen Gruppen oder in sehr großen Bereitstellungen.
  • Verwenden Sie ein Broadcast-Paradigma, um Anforderungen zu verteilen. Alle Slaves empfangen alle Anforderungen gleichzeitig, an Anforderungen sind Filter angehängt, und nur Slaves, die mit dem Filter übereinstimmen, reagieren auf Anforderungen.
  • Verwenden Sie einfache Befehlszeilentools, um Remote-Slaves aufzurufen.
  • Schreiben Sie benutzerdefinierte Berichte über Ihre Infrastruktur.

Kataloge: Ein Katalog beschreibt den gewünschten Status jeder verwalteten Ressource auf einem Slave. Es ist eine Zusammenstellung aller Ressourcen, die der Puppenmeister auf einen bestimmten Slave anwendet, sowie der Beziehungen zwischen diesen Ressourcen.Kataloge werden von einem Puppet Master aus Manifesten und von Slaves bereitgestellten Daten (wie Fakten, Zertifikaten und einer Umgebung, falls vorhanden) sowie optionalen externen Daten (wie Daten von einem externen Slave-Klassifikator, exportierten Ressourcen) zusammengestellt. und Funktionen). Der Master stellt dem Slave dann auf Anfrage den kompilierten Katalog zur Verfügung.

In diesem Puppet Tutorial wird sich mein nächster Abschnitt auf Hands-On konzentrieren.

Puppen-Tutorial - zum Anfassen

Ich werde Ihnen zeigen, wie Sie MySQL und PHP vom Puppet Master zum Puppet Slave bereitstellen. Ich verwende nur einen Slave zu Demonstrationszwecken. Es können Hunderte von Slaves mit einem Master verbunden sein. Um PHP und MySQL bereitzustellen, verwende ich vordefinierte Module, die unter forge.puppet.com verfügbar sind. Sie können auch eigene Module erstellen.

Schritt 1: Installieren Sie in Puppet Master MySQL- und PHP-Module.

Führen Sie Folgendes aus:

1) Puppet Modul installieren Puppetlabs-MySQL - Version 3.10.0

Dieses MySQL-Modul installiert, konfiguriert und verwaltet den MySQL-Dienst. Dieses Modul verwaltet sowohl die Installation und Konfiguration von MySQL als auch die Erweiterung von Puppet, um die Verwaltung von MySQL-Ressourcen wie Datenbanken, Benutzern und Zuschüssen zu ermöglichen.

2) Puppet Modul installieren Mayflower-PHP-Version 4.0.0-Beta1

Dieses Modul wird zur Verwaltung von PHP verwendet, insbesondere von PHP-Fpm. PHP-FPM (FastCGI Process Manager) ist eine alternative PHP FastCGI-Implementierung mit einigen zusätzlichen Funktionen, die für Sites jeder Größe nützlich sind, insbesondere für geschäftigere Sites.

Schritt 2: In Puppet Manifests sind MySQL Server und PHP enthalten.

Führen Sie Folgendes aus: vi /etc/puppet/manifests/site.pp

Sie können auch jeden anderen Editor wie vim, gedit usw. verwenden. Fügen Sie in dieser site.pp-Datei Folgendes hinzu:

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

Speichern und Beenden.

Schritt 3: Puppet Slaves zieht seine Konfiguration regelmäßig (alle 30 Minuten) vom Master ab. Es wird das Hauptmanifest auswerten und das Modul anwenden, das das MySQL- und PHP-Setup angibt. Wenn Sie es sofort ausprobieren möchten, müssen Sie auf jedem Slave-Knoten den folgenden Befehl ausführen:

Führen Sie Folgendes aus: Marionettenagent -t

MySQL und PHP werden also erfolgreich auf dem Slave-Knoten installiert.

Schritt 4: So überprüfen Sie die installierte Version von MySQL und PHP:

Führen Sie Folgendes aus:

1) mysql -v

2) PHP-Version

Herzliche Glückwünsche! MySQl und PHP sind in Ihrem Puppet Slave aktiv. Hier habe ich dir nur einen Sklaven gezeigt, aber stell dir vor, es gibt Hunderte von Sklaven. In diesem Szenario wird Ihre Arbeit so einfach. Geben Sie einfach die Konfigurationen in Puppet Master an, und Puppet Slaves wertet das Hauptmanifest automatisch aus und wendet das Modul an, das das MySQL- und PHP-Setup angibt.

wie man Python Anaconda verwendet

Wenn du das gefunden hast Puppen-Tutorial relevant, Besuche die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Edureka DevOps-Zertifizierungskurs hilft den Lernenden, Kenntnisse in verschiedenen DevOps-Prozessen und -Tools wie Puppet, Jenkins, Nagios und GIT zu erwerben, um mehrere Schritte in SDLC zu automatisieren.