Wie verwende ich Puppet-Module für die Automatisierung der IT-Infrastruktur?



Ein praktisches Puppet-Tutorial, in dem es darum geht, ein Puppet-Modul zu schreiben und mithilfe eines Manifests die IT-Infrastruktur eines Unternehmens zu automatisieren und zu warten.

Zuvor verwendeten Systemadministratoren Shell-Skripte, um ihre Server auszuführen, und diese Methode war nicht skalierbar. Es ist eine gewaltige Aufgabe, Skripte für Hunderte oder Tausende sich ständig ändernder Server und deren Systemkonfigurationen ständig zu ändern.

In diesem Artikel über Puppenmodule & Manifeste Lassen Sie uns sehen, wie wir Puppet-Module zur Automatisierung der Serverkonfiguration, Programminstallation und Systemverwaltung verwenden können.





Dieser Blog behandelt die folgenden Themen:

Einführung in die Puppenprogrammierung

Marionette ist eines der am häufigsten verwendeten DevOps-Tools, das häufig für das Konfigurationsmanagement verwendet wird. Es wird verwendet, um zu bewirken Konsistenz in der Infrastruktur. Puppet kann Infrastruktur als Code definieren, mehrere Server verwalten und die Systemkonfiguration erzwingen, wodurch der Prozess der Infrastrukturverwaltung automatisiert wird.



Marionette hateine eigene Konfigurationssprache, Marionette DSL . Wie bei anderen DevOps-Programmen ist Puppet automatisiert Änderungen und eliminiert manuelle skriptgesteuerte Änderungen. Puppet ist jedoch weder eine andere Shell-Sprache noch eine reine Programmiersprache wie PHP. Stattdessen verwendet Puppetzu deklarativer modellbasierter Ansatz zur IT-Automatisierung. Dadurch kann Puppet die Infrastruktur als Code definieren und die Systemkonfiguration mit Programmen erzwingen.

Bevor wir mit der Demo fortfahren, wollen wir uns einige Kernaspekte der Puppenprogrammierung ansehen.

Fibonacci-Seriencode in Java

Schlüsselbegriffe in der Puppenprogrammierung

Manifeste

Ein Puppenprogramm wird aufgerufen Manifest und hat einen Dateinamen mit .pp Erweiterung. Das Standard-Hauptmanifest von Puppet ist /etc/puppet/manifests/site.pp . (Dies definiertglobale Systemkonfigurationen wie LDAP-Konfiguration, DNS-Server oder andere Konfigurationen, die für jeden Knoten gelten).



Klassen

Innerhalb dieser Manifeste werden Codeblöcke aufgerufen Klassen andere Module können anrufen. Klassen konfigurieren große oder mittlere Funktionsblöcke, z. B. alle Pakete, Konfigurationsdateien und Dienste, die zum Ausführen einer Anwendung erforderlich sind. Klassen erleichtern die Wiederverwendung von Puppet-Code und verbessern die Lesbarkeit.

Ressourcen

Marionettencode besteht hauptsächlich aus Ressourcendeklarationen. EIN Ressource beschreibt ein bestimmtes Element über den gewünschten Status des Systems. Beispielsweise kann es sein, dass eine bestimmte Datei vorhanden sein oder ein Paket installiert werden sollte.

Marionettenmodule

Bis auf die Hauptleitungsite.ppManifest,es speichert Manifesteim Module .

Unser gesamter Puppencode ist in Modulen organisiert, die die Grundbausteine ​​von Puppen sind, die wir wiederverwenden und teilen können. Jedes Modul verwaltet eine bestimmte Aufgabe in der Infrastruktur, z. B. die Installation und Konfiguration einer Software.

Module enthalten Puppet-Klassen, definierte Typen, Aufgaben, Aufgabenpläne, Kapazitäten, Ressourcentypen und Plugins, z. B. benutzerdefinierte Typen oder Fakten. Installieren Sie Module in der PuppeModulpfad. Puppet lädt den gesamten Inhalt von jedem Modul im Modulpfad und stellt diesen Code zur Verwendung zur Verfügung.

Module - Puppenprogrammierung - EdurekaPuppetlabs hat vordefinierte Module, die wir sofort verwenden können, indem wir sie von herunterladen PuppetForge . Sie können auch ein benutzerdefiniertes Puppenmodul erstellen, das Ihren Anforderungen entspricht.

Puppet Program Workflow

Wir werden die deklarative Sprache von Puppet verwenden, um den gewünschten Status des Systems in Dateien zu beschreiben, die als Manifeste bezeichnet werden. Manifeste beschreiben, wie Sie Ihre Netzwerk- und Betriebssystemressourcen wie Dateien, Pakete und Dienste konfigurieren sollten.

Puppet kompiliert manifestiert sich in Kataloge und es wendet jeden Katalog auf seinen entsprechenden Knoten an, um diese Konfiguration von t sicherzustellenDer Knoten ist korrektüber Ihre Infrastruktur.

Demonstration: Automatisierung der Installation von Apache & MySQL

Dieser Artikel über Puppenmodule ist praktisch und zeigt zwei Möglichkeiten der Verwendung eines Puppenmoduls und zeigt Ihnen auch, wie es geht automatisieren die Installation eines mit diesen beiden Modulen konfigurierten Servers.

Stellen Sie zunächst sicher, dass Sie eine Puppet-Infrastruktur eingerichtet haben, die einen Puppet-Master-Server und 2 Puppet-Agenten umfasst.

  • Puppet Master: Ubuntu 18.04
  • Agent 1: Ubuntu 18.04
  • Agent 2:CentOS7

Hier ist ein Überblick darüber, was wir in dieser praktischen Übung erreichen werden:


Beginnen wir also mit den praktischen Übungen:

Ein Modul von Grund auf neu erstellen

In diesem Puppet-Modul werden Aufgaben wie das Herunterladen des Apache-Pakets, das Konfigurieren von Dateien und das Einrichten virtueller Hosts behandelt.

  • Navigieren Sie im Puppet Master zum Modulverzeichnis von Puppet und erstellen Sie das Apache-Verzeichnis:
    cd / etc / puppet / modules sudo mkdir apache
  • Erstellen Sie im Apache-Verzeichnis Unterverzeichnisse: Manifeste, Vorlagen, Dateien und Beispiele.
    cd apache sudo mkdir {Manifeste, Vorlagen, Dateien, Beispiele}
  • Navigieren Sie zum Manifestverzeichnis:
    CD manifestiert sich
  • Von hier aus werden wir das Modul basierend auf den Zielen dieses Codeabschnitts in Klassen unterteilen.

init.pp. -> um das Apache-Paket herunterzuladen

params.pp -> um Variablen und Parameter zu definieren

config.pp -> um alle Konfigurationsdateien für den Apache-Dienst zu verwalten.

vhosts.pp -> um die virtuellen Hosts zu definieren.

Dieses Modul wird auch verwendet Hiera ((ein integriertes Suchsystem für Schlüsselwertkonfigurationsdaten, das zum Trennen von Daten von Puppet-Code-Daten verwendet wird; um Variablen für jeden Knoten zu speichern.

Schritt 1: Herunterladen des Apache-Pakets

Erstellen Sie die Klasse init.pp.

Jetzt werden wir eine erstelleninit.pp.Datei unter dem Manifest-Verzeichnis, in dem sich das Apache-Paket befindet.
Da wir zwei verschiedene Betriebssysteme (Ubuntu und CentOS7) haben, die unterschiedliche Paketnamen für Apache verwenden, müssen wir eine Variable verwenden$ apachename.

/etc/puppetlabs/code/environments/production/modules/apache/manifests/init.pp

Klasse Apache {Paket {'Apache': Name => $ Apachename, sicherstellen => vorhanden,}}

Paket Ressource ermöglicht die Verwaltung eines Pakets. Dies wird verwendet, um ein Paket hinzuzufügen, zu entfernen oder sicherzustellen, dass es vorhanden ist.

In den meisten Fällen ist die Name der Ressource (Apache, oben) sollte der Name des verwalteten Pakets sein. Aufgrund der unterschiedlichen NamenskonventionenWir nennen den tatsächlichen Namen des Paketsauf mit dem Name Referenz. Damit Name ruft die noch nicht definierte Variable auf$ apachename.

dafür sorgen Referenz stellt sicher, dass das Paket istGeschenk.

Erstellen Sie die Datei params.pp

Dasparams.ppDatei definiert die benötigten Variablen. Während wir diese Variablen innerhalb der definieren könnteninit.pp.Datei, da mehr Variablen außerhalb des Ressourcentyps selbst verwendet werden müssen, indem a verwendet wirdparams.ppDatei ermöglicht die Definition von Variablen inwennAnweisungen und über mehrere Klassen hinweg verwendet.

Ein ... kreierenparams.ppDatei und den folgenden Code.

/etc/puppetlabs/code/environments/production/modules/apache/manifests/params.pp

Klasse apache :: params {if $ :: osfamily == 'RedHat' {$ apachename = 'httpd'} elsif $ :: osfamily == 'Debian' {$ apachename = 'apache2'} else {fail ('das ist nicht eine unterstützte Distribution. ')}}

Außerhalb des Originals init.pp.Klasse, von der jeder Klassenname abzweigen mussApache. Wir nennen diese Klasse als apache :: params . Der Name nach dem Doppelpunkt sollte einen Namen mit der Datei teilen. EinwennDie Anweisung wird verwendet, um die Parameter zu definieren, wobei auf die Informationen von zurückgegriffen wird Faktor Puppet hat eine Facter-Installation als Teil seiner Installation. Hier wird Facter die Betriebssystemfamilie herunterziehen (osfamily), um zu erkennen, ob es istroter HutoderDebian-basiert.

Nachdem die Parameter endgültig definiert wurden, müssen wir die aufrufen params.pp Datei und die Parameter ininit.pp.. Dazu müssen wir die Parameter nach dem Klassennamen, aber vor der öffnenden geschweiften Klammer hinzufügen({).

Also dieinit.pp.Das, was wir zuvor erstellt haben, sollte ungefähr so ​​aussehen:

Klasse Apache ($ apachename = $ :: apache :: params :: apachename,) erbt :: apache :: params {Paket {'Apache': Name => $ apachename, sicherstellen => vorhanden,}}

Die Wertzeichenfolge $ :: apache :: params :: value weist Puppet an, die Werte aus dem zu ziehen Apache Module, params Klasse, gefolgt vom Parameternamen. Das Fragment erbt :: apache :: params gestattetinit.pp.diese Werte zu erben.

Schritt 2: Konfigurationsdateien verwalten

Die Apache-Konfigurationsdatei unterscheidet sich je nachdem, ob Sie auf einem Red Hat- oder Debian-basierten System arbeiten.

Die folgenden Abhängigkeitsdateien finden Sie am Ende dieser Demo:httpd.conf(Roter Hut),apache2.conf(Debian).

  • Kopieren Sie den Inhalt von httpd.conf undapache2.confin separaten Dateien und speichern Sie diese in der Dateien Verzeichnisbeim / etc / Puppenlab / Code / Umgebungen / Produktion / Module / Apache / Dateien .
  • Bearbeiten Sie beide Dateien in deaktivieren bleib am Leben. Sie müssen die Zeile hinzufügen KeepAlive Off in demhttpd.confDatei. Wenn Sie diese Einstellung nicht ändern möchten, sollten Sie oben jeweils einen Kommentar hinzufügenDatei:
    /etc/puppetlabs/code/environments/production/modules/apache/files/httpd.conf
#Diese Datei wird von Puppet verwaltet

Fügen Sie diese Dateien dem hinzuinit.pp.Datei, damit Puppet den Speicherort dieser Dateien sowohl auf dem Master-Server als auch auf den Agentenknoten kennt. Dazu verwenden wir die Datei Ressource.

/etc/puppetlabs/code/environments/production/modules/apache/manifests/init.pp

Datei {'Konfigurationsdatei': Pfad => $ conffile, sicherstellen => Datei, Quelle => $ confsource,}

Da sich die Konfigurationsdateien an zwei verschiedenen Speicherorten befinden, geben wir der Ressource den generischen Namen Konfigurationsdatei mit der Datei Pfad definiert als Parameter mit demPfadAttribut.

dafür sorgen stellt sicher, dass es sich um eine Datei handelt.

Quelle Gibt den Speicherort der oben erstellten Dateien auf dem Puppet Master an.

Öffne dasparams.ppDatei.

verbundene und nicht verbundene Transformation in der Informatik

Wir definieren die $ conffile und $ confsourceVariablen innerhalb derwennErklärung:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/params.pp

if $ :: osfamily == 'RedHat' {... $ conffile = '/etc/httpd/conf/httpd.conf' $ confsource = 'puppet: ///modules/apache/httpd.conf'} elsif $: : osfamily == 'Debian' {... $ conffile = '/etc/apache2/apache2.conf' $ confsource = 'puppet: ///modules/apache/apache2.conf'} else {...

Wir müssen die Parameter am Anfang desApacheKlassendeklaration in derinit.pp.Datei, ähnlich dem vorherigen Beispiel.

Wenn sich die Konfigurationsdatei ändert, muss Apache neu gestartet werden. Um dies zu automatisieren, können wir die Serviceressource verwendenin Kombination mit dem benachrichtigen Attribut, das die Ressource aufruft, die ausgeführt werden soll, wenn die Konfigurationsdatei geändert wird:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/init.pp

Datei {'Konfigurationsdatei': Pfad => $ conffile, sicherstellen => Datei, Quelle => $ confsource, Benachrichtigung => Dienst ['Apache-Dienst'],} Dienst {'Apache-Dienst': Name => $ apachename, hasrestart => true,}

Bedienung Die Ressource verwendet den bereits erstellten Parameter, der den Apache-Namen auf Red Hat- und Debian-Systemen definiert.
hasrestart Das Attribut wird verwendet, um einen Neustart des definierten Dienstes auszulösen.

Schritt 3: Erstellen Sie die virtuellen Hostdateien

Abhängig von der Verteilung Ihres Systems werden die Dateien des virtuellen Hosts unterschiedlich verwaltet. Aus diesem Grund werden wir den Code für virtuelle Hosts in ein einschließenwennAussage, ähnlich der in derparams.ppKlasse, enthält aber tatsächliche Puppet-Ressourcen.

  • Aus demApache / Manifeste /Verzeichnis erstellen und öffnen avhosts.ppDatei. Fügen Sie das Skelett deswennErklärung:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/vhosts.pp

Klasse apache :: vhosts {if $ :: osfamily == 'RedHat' {} elsif $ :: osfamily == 'Debian' {} else {}}

Der Speicherort der virtuellen Hostdatei auf unserem CentOS 7-Server ist/etc/httpd/conf.d/vhost.conf . Sie müssen die Datei als Vorlage auf dem Puppet Master erstellen. Machen Sie dasselbe für die Ubuntu Virtual Hosts-Datei, die sich unter befindet/etc/apache2/sites-available/example.com.conf, ersetzenexample.commit dem FQDN des Servers.

  • Navigieren Sie zu Vorlagen Datei innerhalb der Apache Modul und erstellen Sie dann zwei Dateien für Ihre virtuellen Hosts:

Für Red Hat-Systeme:
/etc/puppetlabs/code/environments/production/modules/apache/templates/vhosts-rh.conf.erb

ServerAdmin Servername ServerAlias ​​www. DocumentRoot / var / www // public_html / ErrorLog /var/www//logs/error.log CustomLog /var/www//logs/access.log kombiniert

Für Debian-Systeme:
/etc/puppet/modules/apache/templates/vhosts-deb.conf.erb

ServerAdmin Servername ServerAlias ​​www. DocumentRoot / var / www / html // public_html / ErrorLog /var/www/html//logs/error.log CustomLog /var/www/html//logs/access.log kombiniertBenötigen Sie alle gewährt

In diesen Dateien werden nur zwei Variablen verwendet: Adminemail und Servername . Wir werden diese knotenweise innerhalb der definierensite.ppDatei.

  • Gehe zurück zumvhosts.ppDatei. Auf die erstellten Vorlagen kann jetzt im Code verwiesen werden:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/vhosts.pp

C ++ - Arraysortierung
Klasse apache :: vhosts {if $ :: osfamily == 'RedHat' {Datei {'/etc/httpd/conf.d/vhost.conf': Sicherstellen => Datei, Inhalt => Vorlage ('apache / vhosts-rh .conf.erb '),}} elsif $ :: osfamily ==' Debian '{Datei {' /etc/apache2/sites-available/$servername.conf ': Sicherstellen => Datei, Inhalt => Vorlage (' Apache /vhosts-deb.conf.erb '),}} else {fail (' Dies ist keine unterstützte Distribution. ')}}

Beide Vertriebsfamilien rufen die anDateiRessource und übernehmen Sie den Titel des Standorts des virtuellen Hosts in der jeweiligen Distribution. Für Debian bedeutet dies erneut, auf die zu verweisen$ ServernameWert. DasInhaltAttribut ruft die jeweiligen Vorlagen auf.

  • Beide virtuellen Hostdateien verweisen auf zwei Verzeichnisse. Sie befinden sich standardmäßig nicht auf den Systemen. Wir können diese durch die Verwendung der erstellenDateiRessource, jeweils innerhalb derwennErklärung. Das Ganzevhosts.confDatei sollte ähneln:

/etc/puppetlabs/code/environments/production/modules/apache/manifests/vhosts.pp

Klasse apache :: vhosts {if $ :: osfamily == 'RedHat' {Datei {'/etc/httpd/conf.d/vhost.conf': Sicherstellen => Datei, Inhalt => Vorlage ('apache / vhosts-rh .conf.erb '),} Datei {[' / var / www / $ Servername ',' / var / www / $ Servername / public_html ',' / var / www / $ Servername / log ',]: Sicherstellen => Verzeichnis,}} elsif $ :: osfamily == 'Debian' {Datei {'/etc/apache2/sites-available/$servername.conf': Sicherstellen => Datei, Inhalt => Vorlage ('apache / vhosts-deb. conf.erb '),} Datei {[' / var / www / $ Servername ',' / var / www / $ Servername / public_html ',' / var / www / $ Servername / Protokolle ',]: Sicherstellen => Verzeichnis ,}} else {fail ('Dies ist keine unterstützte Distribution.')}}

Schritt 4: Testen Sie das Modul

  • Navigieren Sie zuApache / Manifeste /Verzeichnis, führen Sie die Puppenparser auf alle Dateien, um sicherzustellen, dass die Puppet-Codierung fehlerfrei ist:

sudo / opt / Puppenlabs / bin / Puppenparser validieren init.pp params.pp vhosts.pp

Es sollte leer und ohne Probleme zurückgegeben werden.

  • Navigieren Sie zu Beispiele Verzeichnis innerhalb derApacheModul. Erstelle eininit.pp.Datei und fügen Sie die erstellten Klassen. Ersetzen Sie die Werte für$ Servernameund$ adminemailmit deinem eigenen:

/etc/puppetlabs/code/environments/production/modules/apache/examples/init.pp

serveremail = 'webmaster@example.com' $ servername = 'puppet.example.com' include apache include apache :: vhosts
  • Testen Sie das Modul durch Ausführen Marionette anwenden mit dem –Noop Etikett:
    sudo / opt / puppetlabs / bin / puppet bewerben --noop init.pp.

Es sollte keine Fehler zurückgeben und ausgeben, dass Aktualisierungen von Ereignissen ausgelöst werden. Um Apache auf dem Puppet Master zu installieren und zu konfigurieren, führen Sie es erneut ohne aus–Noopauf Wunsch.

  • Navigieren Sie zurück zum Puppet-Hauptverzeichnis und dann zummanifestiert sichMappe (nichtdie im Apache-Modul vorhandene).

CD / etc / Puppetlabs / Code / Umgebungen / Produktion / Manifeste

Ein ... kreierensite.ppDatei,und fügen Sie das Apache-Modul für jeden Agentenknoten hinzu. Geben Sie auch die Variablen für die einAdminemail und ServernameParameter. Ihresite.ppsollte wie folgt aussehen:

/etc/puppetlabs/code/environments/production/manifests/site.pp

Knoten 'puppet-agent-ubuntu.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'puppet.example.com' include apache include apache :: vhosts} Knoten 'puppet-agent-centos.example .com '{$ adminemail =' webmaster@example.com '$ servername =' puppet.example.com 'include apache include apache :: vhosts}

Standardmäßig überprüft der Puppet-Agentendienst auf Ihren verwalteten Knoten automatisch alle 30 Minuten den Master und wendet alle neuen Konfigurationen vom Master an. Sie können den Puppet-Agentenprozess auch manuell zwischen automatischen Agentenläufen aufrufen. Um das neue Modul manuell auf Ihren Agentenknoten auszuführen, melden Sie sich bei den Knoten an und führen Sie Folgendes aus:

sudo / opt / puppetlabs / bin / puppet agent -t

Nachdem wir nun gelernt haben, wie man ein Modul von Grund auf neu erstellt, lernen wir, wie man ein bereits vorhandenes Modul aus der Puppenschmiede von Puppenlabors verwendet.

Verwenden Sie ein Modul von PuppetForge

Marionettenschmiede hat bereits viele Module für den Server zum Ausführen. Wir können diese genauso umfangreich konfigurieren wie ein von Ihnen erstelltes Modul und Zeit sparen, da wir das Modul nicht von Grund auf neu erstellen müssen.

Stellen Sie sicher, dass Sie in der / etc / Puppenlabels / Code / Umgebungen / Produktion / Module Verzeichnis und installieren Sie die Das MySQL-Modul von Puppet Forge von PuppetLabs. Dadurch werden auch alle erforderlichen Module installiert.

CD / etc / Puppetlabs / Code / Umgebungen / Produktion / Module

sudo / opt / puppetlabs / bin / Marionettenmodul installiere puppetlabs-mysql

Verwenden Sie Hiera, um Datenbanken zu erstellen

Beachten Sie vor dem Erstellen der Konfigurationsdateien für das MySQL-Modul, dass Sie möglicherweise nicht für alle Agentenknoten dieselben Werte verwenden möchten. Um Puppet mit den richtigen Daten pro Knoten zu versorgen, verwenden wir Hiera. Sie verwenden ein anderes Root-Passwort pro Knoten, wodurch verschiedene MySQL-Datenbanken erstellt werden.

  • Navigieren Sie zu/ etc / Marionetteund erstellen Sie die Konfigurationsdatei von Hierahiera.yamlim WesentlichenMarionetteVerzeichnis. Sie verwenden die Standardwerte von Hiera:

/etc/puppetlabs/code/environments/production/hiera.yaml

--- Version: 5 Hierarchie: - Name: Allgemeiner Pfad: common.yaml Standard: data_hash: yaml_data datadir: data
  • Erstellen Sie die Dateicommon.yaml. Es wird die Standardeinstellung definiert Wurzel Passwort für MySQL:

/etc/puppetlabs/code/environments/production/common.yaml

mysql :: server :: root_password: 'password'

Wir nehmen dascommon.yamlDateiwenn eine Variable nicht an anderer Stelle definiert ist. Dies bedeutet, dass alle Server dasselbe MySQL-Root-Passwort verwenden. Diese Passwörter können auch gehasht werden, um die Sicherheit zu erhöhen.

  • Um die Standardeinstellungen des MySQL-Moduls zu verwenden, können Sie eine hinzufügen Dazu gehört ':: mysql :: server'. Linie zumsite.ppDatei. In diesem Beispiel überschreiben Sie jedoch einige der Standardeinstellungen des Moduls, um eine Datenbank für jeden Ihrer Knoten zu erstellen.

Bearbeiten Sie diesite.ppDatei mit folgenden Werten:

Knoten 'Puppetagent-ubuntu.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'hostname.example.com' include apache include apache :: vhosts include mysql :: server mysql :: db {'mydb_ $ {fqdn} ': user =>' myuser ', password =>' mypass ', dbname =>' mydb ', host => $ :: fqdn, grant => [' SELECT ',' UPDATE '], tag = > $ domain,}} Knoten 'Puppetagent-centos.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'hostname.example.com' include apache include apache :: vhosts include mysql :: server mysql :: db {'mydb _ $ {fqdn}': user => 'myuser', password => 'mypass', dbname => 'mydb', host => $ :: fqdn, grant => ['SELECT', ' UPDATE '], tag => $ domain,}}

Automatisierung der Installation der Puppenmodule vom Puppenmeister zum Puppenagenten

  • Sie können diese Aktualisierungen manuell auf jedem Knoten ausführen, indem Sie SSHing in jeden Knoten ausführen und den folgenden Befehl ausgeben:

sudo / opt / puppetlabs / bin / puppet agent -t

  • Andernfalls überprüft der Puppet-Agentendienst auf Ihren verwalteten Knoten automatisch alle 30 Minuten den Master und wendet alle neuen Konfigurationen vom Master an.

Katalog erfolgreich auf Ubuntu Agent angewendet

Katalog erfolgreich auf CentOS-Agent angewendet

Somit wird die gesamte Installation erhalten automatisiert auf den Agentenknoten durch einfaches Anwenden des Katalogs.Die für diese Demo verwendeten Codedateien und Abhängigkeiten finden Sie hier Hier .

Ich hoffe, diese Demo hat Ihnen geholfen, eine klare Vorstellung von Puppenmodulen und -manifesten und deren Verwendung zur Automatisierung der IT-Infrastruktur zu bekommen.In diesem Fall wird Ihre Arbeit so einfach. Geben Sie einfach die Konfigurationen in Puppet Master an, und Puppet-Agenten werten automatisch das Hauptmanifest aus und wenden das Modul an, das das Apache- und MySQL-Setup angibt. Wenn Sie Fragen haben, können Sie diese gerne auf posten .

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.