Marionette - Manifestdateien
In Puppet alle Programme, die mit der Programmiersprache Ruby geschrieben und mit einer Erweiterung von gespeichert wurden .pp werden genannt manifests. Im Allgemeinen werden alle Puppet-Programme, die mit der Absicht erstellt wurden, einen Zielhostcomputer zu erstellen oder zu verwalten, als Manifest bezeichnet. Alle in Puppet geschriebenen Programme folgen dem Puppet-Codierungsstil.
Der Kern von Puppet ist die Art und Weise, wie Ressourcen deklariert werden und wie diese Ressourcen ihren Zustand darstellen. In jedem Manifest kann der Benutzer über eine Sammlung verschiedener Arten von Ressourcen verfügen, die mithilfe von Klasse und Definition zusammengefasst werden.
In einigen Fällen kann das Puppenmanifest sogar eine bedingte Anweisung enthalten, um einen gewünschten Zustand zu erreichen. Letztendlich kommt es jedoch darauf an, sicherzustellen, dass alle Ressourcen richtig definiert und verwendet werden und dass das definierte Manifest, wenn es nach der Konvertierung in einen Katalog angewendet wird, die Aufgabe ausführen kann, für die es entworfen wurde.
Manifest File Workflow
Das Puppenmanifest besteht aus folgenden Komponenten:
Files (Dies sind einfache Dateien, mit denen Puppet nichts zu tun hat, nur um sie aufzunehmen und am Zielort zu platzieren.)
Resources
Templates (Diese können verwendet werden, um Konfigurationsdateien auf dem Knoten zu erstellen).
Nodes (Alle Definitionen, die sich auf einen Clientknoten beziehen, werden hier definiert.)
Classes
Zu beachtende Punkte
In Puppet verwenden alle Manifestdateien Ruby als Codierungssprache und werden mit gespeichert .pp Erweiterung.
Die "Import" -Anweisung in vielen Manifesten wird zum Laden von Dateien verwendet, wenn Puppet gestartet wird.
Um alle in einem Verzeichnis enthaltenen Dateien zu importieren, können Sie die import-Anweisung auf eine andere Weise verwenden, z. B. 'clients / *' importieren. Dies wird alle importieren.pp Dateien in diesem Verzeichnis.
Manifeste schreiben
Arbeiten mit Variablen
Während des Schreibens eines Manifests kann der Benutzer an jedem Punkt eines Manifests eine neue Variable definieren oder eine vorhandene Variable verwenden. Puppet unterstützt verschiedene Arten von Variablen, von denen jedoch nur wenige häufig verwendet werden, z. B. Zeichenfolgen und Zeichenfolgenarrays. Neben ihnen werden auch andere Formate unterstützt.
Beispiel für eine Zeichenfolgenvariable
$package = "vim"
package { $package:
ensure => "installed"
}
Verwenden von Schleifen
Schleifen werden verwendet, wenn mehrere Iterationen mit demselben Codesatz durchlaufen werden sollen, bis eine definierte Bedingung erfüllt ist. Sie werden auch verwendet, um sich wiederholende Aufgaben mit unterschiedlichen Werten auszuführen. Erstellen von 10 Aufgaben für 10 verschiedene Dinge. Man kann eine einzelne Aufgabe erstellen und eine Schleife verwenden, um die Aufgabe mit verschiedenen Paketen zu wiederholen, die man installieren möchte.
Am häufigsten wird ein Array verwendet, um einen Test mit unterschiedlichen Werten zu wiederholen.
$packages = ['vim', 'git', 'curl']
package { $packages:
ensure => "installed"
}
Bedingungen verwenden
Puppet unterstützt den größten Teil der bedingten Struktur, die in traditionellen Programmiersprachen zu finden ist. Die Bedingung kann verwendet werden, um dynamisch zu definieren, ob eine bestimmte Aufgabe ausgeführt werden soll oder ob ein Satz von Code ausgeführt werden soll. Wie if / else und case Anweisungen. Darüber hinaus unterstützen Bedingungen wie "Ausführen" auch Attribute, die wie eine Bedingung funktionieren, jedoch nur eine Befehlsausgabe als Bedingung akzeptieren.
if $OperatingSystem != 'Linux' {
warning('This manifest is not supported on this other OS apart from linux.')
} else {
notify { 'the OS is Linux. We are good to go!': }
}