kentoh - Fotolia

Einführung in die wichtigsten SaltStack-Befehle zur Minion-Verwaltung

Die Master-Minion-Beziehung ist das Herzstück des Konfigurations-Managements per SaltStack. Diese Befehle bilden die Grundlage der Minion-Verwaltung.

Administratoren großer und kleiner Server-Deployments nutzen SaltStack, um ihre Umgebung mit dem skalierbaren, schnellen und einfach zu bedienenden Tool zu orchestrieren. Das Herzstück des Konfigurations-Managements mit Salt, dem Open-Source-Produkt hinter SaltStack, ist der Salt Master.

SaltStack führt Befehle des Salt Master auf den Salt Minions aus. Die Kommunikation zwischen Master und Minions erfolgt über den ZeroMQ-Message-Bus. SaltStack-Module wiederum kommunizieren mit den unterstützten Betriebssystemen auf den Minions. Der Salt Master nutzt standardmäßig Linux, als Minion kann aber nahezu jedes beliebige Betriebssystem zum Einsatz kommen, üblich sind hier meist Windows, VMware vSphere und Derivate von BSD Unix. Das folgende Tutorial zeigt, wie man Informationen über einen Minion abfragt und wie Salt-Module zur Flexibilität einer SaltStack-Bereitstellung beitragen.

Aufsetzen einer Testumgebung für Salt

Für dieses Tutorial kann jede beliebige Linux-Distribution als Betriebssystem des Salt Masters verwendet werden. Die meisten Linux-Versionen beinhalten mittlerweile die hierfür nötigen SaltStack-Binaries. Für RHEL (Red Hat Enterprise Linux) oder CentOS 7 muss allerdings zunächst das EPEL-Repository hinzugefügt werden, das offiziell nicht-unterstützte Pakete enthält. Nachdem dieses Repository aktiviert wurde, wird über yum install salt-master der SaltStack Master installiert. Mit dem Befehl yum install salt-minion kann anschließend auf einem Red-Hat-basierten System ein Minion aufgesetzt werden.

Der Minion sucht während der Installation automatisch nach einem Master und nutzt hierfür DNS-Einträge (Domain Name System), die sich für „salt“ auflösen lassen. Als Alternative kann die Datei /etc/salt/minion inklusive einer Zeile mit master: 192.168.0.10 eingerichtet werden – hier wird ganz einfach die IP-Adresse des Masters angegeben. Auf beiden Systemen müssen die TCP-Ports 4505 und 4506 in der Firewall geöffnet sein.

Weitere Artikel zum Konfigurations-Management:

SaltStack als Management-Tool für vSphere.

Überblick über Ansible.

Einführung in Puppet.

Grundfunktionen von Chef.

Minions und der Salt Master verwenden für ihre Kommunikation Schlüsselpaare. Wenn sich ein Minion zum ersten Mal mit einem Master verbindet, dann speichert er dort Schlüssel. Über den Befehl salt-key –L auf dem Master erhält man eine Liste der Schlüssel aller dort registrierten Minions. Nur weil dort ein Schlüssel registriert ist heißt das aber noch lange nicht, dass er auch akzeptiert wird. Um alle Minion-Schlüssel auf dem Salt Master zu akzeptieren, kann der Befehl salt-key –A verwendet werden. Zur Verifizierung der Verfügbarkeit aller aktuell registrierten Minions dient der Befehl salt-run manage.status.

Salt-Befehle auf Minions ausführen

Zum Ausführen von Befehlen auf Salt Minions müssen diese mit salt beginnen, gefolgt von den Zielsystemen, dem Modul-Namen sowie der gewünschten Funktion. Administratoren können dabei per Asterisk alle Minions mit einbeziehen oder sich auf konkret aufgeführte Minions beziehen. Ein Beispiel für diese Struktur wäre salt "*" test.ping. Mit diesem Befehl wird der Ping-Befehl an alle Minions gesendet.

Salt zeigt sich bei der Ansprache der Minions enorm flexibel. Reguläre Ausdrücke können sich also auch auf einen Minion-Namen beziehen. Sobald man mit SaltStack etwas vertrauter ist, kann man auch versuchen, Minions über Attribute anzusprechen, womit sich Befehle auf eine bestimmte Gruppe an Minions mit spezifischen Merkmalen anwenden lassen.

SaltStack nutzt sogenannte Grains, um spezifische Minion-Attribute zu speichern, beispielsweise Informationen über das Betriebssystem, die Hardware oder das BIOS. Um Informationen über einen Minion zu erhalten, kann das Grain-Modul mit Verweis auf eine bestimmte Funktion verwendet werden. Ein Beispiel hierfür wäre der Befehl salt "*" grains.item os, mit dem sich eine Abfrage aller Minions starten lässt, um das auf ihnen ausgeführte Betriebssystem herauszufinden. Zusätzlich gibt es auch spezifische Grain-Befehle, um Minions mit bestimmten Eigenschaften anzusprechen. Ein Beispiel wäre der Befehl salt -G "cpuarch:x86_64" test.ping, der alle Minions mit 64-Bit-Betriebssystem anpingt. SaltStack enthält vordefinierte Standard-Grains, Administratoren können aber auch vergleichsweise einfach eigene Grains hinzufügen.

Mögliche Modul-Befehle für SaltStack

Es gibt viele verschiedene Möglichkeiten, auf Minions-Befehle auszuführen. Die einfachste davon besteht darin, den Befehl salt-run zu verwenden, gefolgt von der Minion-Bezeichnung und dem spezifischen Befehl für eine bestimmte Aufgabe. Salt-Module bieten Administratoren allerdings eine weitaus größere Flexibilität, da sie unabhängig vom verwendeten Betriebssystem funktionieren. Das file.append-Modul beispielsweise ermöglicht das Anhängen einer Zeile an eine bestehende Datei:

salt "*" file.append /etc/hosts

10.0.0.10         salt.example.com

Auch wenn Module unabhängig vom Betriebssystem funktionieren, sollte man vorsichtig mit ihnen umgehen. Das hier aufgeführte Beispiel lässt sich nur auf Linux- und Unix-basierten Minions anwenden, auf denen die Datei /etc/hosts vorhanden ist.

Auf Linux gibt es nur eine begrenzte Standardisierung bei den Paket-Managern. Daher könnte das Salt-Modul pkg.install hier für weitaus mehr Flexibilität beim Installieren von Softwarepaketen sorgen. Der Befehl salt "*" pkg.install ldap-client beispielsweise installiert das LDAP-Client-Paket (Lightweight Directory Access Protocol) auf allen SaltStack-Minions.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Erfahren Sie mehr über Data-Center-Betrieb

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close