In SaltStack Config können Sie häufige Konfigurationsverwaltungsaufgaben und -verfahren, die Sie oder Ihr Team regelmäßig durchführen, mithilfe von Aufträgen vereinfachen und automatisieren.

Definition von Aufträgen in SaltStack Config

Aufträge werden verwendet, um Remoteausführungsaufgaben auszuführen oder Statusdateien auf die Knoten (Minions) anzuwenden, die von SaltStack Config verwaltet werden. Aufträge sind in der Regel für Systemvorgänge vorgesehen, die automatisiert und mehrmals ausgeführt werden müssen. Sie können Aufträge erstellen, um häufige, regelmäßig ausgeführte Aufgaben zu automatisieren, wenn Sie Knoten in Ihrem System bereitstellen, konfigurieren, überwachen und verwalten. Sie können Aufträge auch so einrichten, dass sie gemäß einem regelmäßigen Zeitplan ausgeführt werden, wie z. B. Aufträge, die regelmäßig nach Konfigurationsabweichungen suchen und diese verhindern.

Sie können häufig wiederkehrende Aufträge speichern und schrittweise eine umfangreiche Bibliothek mit Aufträgen zur künftigen Wiederverwendung durch Ihr Team erstellen. Die Verwendung von Aufträgen für die Konfigurationsverwaltung senkt den Zeitaufwand Ihres Teams für die manuelle Installation, Konfiguration, Bereitstellung, Aktualisierung und Wartung der Knoten im System.

Beispiele für gängige Aufträge

Eine praktische Einführung in die Funktionsweise von Aufträgen und einige praktische Beispiele für typische Aufträge finden Sie in den Lernprogrammen des SaltStack Config-Einführungshandbuchs:

Je nach Zielsetzung und Zweck können Sie Tausende von verschiedenen Aufträgen in SaltStack Config ausführen. Nachdem Sie die auszuführende Aufgabe oder das zu lösende Problem angegeben haben, können Sie nach den verfügbaren Salt-Modulen suchen, um herauszufinden, welche Module die von Ihnen benötigten Funktionen ausführen.

Aufträge in SaltStack Config enthalten in der Regel ein oder mehrere Ausführungs- oder Statusmodule, die von der Open Source-Salt-Community entwickelt wurden. Salt-Ausführungsmodule sind kleine Programme, die Python-Code enthalten und auf einem Salt-Minion ausgeführt werden können und eine bestimmte Aufgabe ausführen. Salt-Statusmodule sind mit Ausführungsmodulen vergleichbar. Salt-Statusmodule sind Programme mit Python-Code, die in Salt-Statusdateien verwendet werden können, um die Anwendung eines Status auf ein Minion zu verwalten.

In der folgenden Tabelle werden einige der am häufigsten verwendeten Ausführungs- und Statusmodule angezeigt:

Salt-Modul Beschreibung

state.apply

Ein Modul, das eine Statusdatei auf ein Minion anwendet. Während der Ausführung der Statusdatei wird überprüft, ob sich das Minion im aktuellen gewünschten Zustand befindet. Wenn sich der Minion nicht im aktuellen gewünschten Zustand befindet, führt er die Befehle und Module aus, um diesen Minion in den gewünschten Zustand zu versetzen.

Ein Highstate gilt für alle Statusangaben in der obersten Datei. Weitere Informationen finden Sie unter state.highstate.

pkg.installed

Ein Statusmodul (d. h., es wird in Statusdateien verwendet), das überprüft, ob die richtige Version eines Pakets installiert wurde. Wenn die richtige Version nicht installiert ist, wird ein Paket installiert und sichergestellt, dass es sich um die korrekte Version dieses Pakets handelt. Weitere Informationen zum Installieren von Paketen mit bestimmten Betriebssystemen finden Sie unter salt.states.pkg.

file.managed

Ein Statusmodul (d. h., es wird in Statusdateien verwendet), das eine Datei vom Salt-Master herunterlädt und diese Datei zur späteren Verwendung auf den Ziel-Minions ablegt. Weitere Informationen zum Verwalten von Dateien mit Salt finden Sie unter salt.states.file.

service.running

Ein Statusmodul (d. h., es wird in Statusdateien verwendet), das überprüft, ob ein Dienst ausgeführt wird. Wenn der Dienst nicht ausgeführt wird, wird er gestartet. Weitere Informationen zum Starten oder Neustarten von Diensten mit Salt finden Sie unter salt.states.service.

Eine umfassende Liste der Salt-Ausführungs- und -Statusmodule finden Sie im Index des Salt-Moduls.

Wenn Salt nicht über ein von Ihnen benötigtes Modul verfügt, können Sie Salt erweitern, indem Sie eigene benutzerdefinierte Module in Python erstellen. Bei Bedarf können Sie dieses Modul auch vor dem Salt-Projekt übermitteln. Die offiziell von VMware gesponsorte Salt Project-Community umfasst mehr als 3.000 Mitwirkende, die in den Bereichen IT und Systemadministration arbeiten. Die Salt-Community erweitert Salt, indem zahlreiche Ausführungs- und Statusmodule zur Durchführung der häufigsten Aufgaben oder Lösung der wichtigsten Probleme erstellt werden, mit denen sich Systemadministratoren konfrontiert sehen.

Überblick über den Workflow „Aufträge“

Im Allgemeinen erstellt, konfiguriert und speichert ein leitender Systemadministrator Auftragseinstellungen zur späteren Wiederverwendung. Anschließend kann der leitende Administrator einen Nachwuchsadministrator autorisieren, diesen Auftrag auf allen Knoten (Zielen) auszuführen, auf die der Nachwuchsadministrator zugreifen darf. Beim Erstellen eines Auftrags definiert der leitende Administrator die Auftragseingaben, die sich auf die spezifischen Auftragseinstellungen oder Variablen beziehen, die vom Nachwuchsadministrator zur Laufzeit geändert werden können.

Beispielsweise kann ein leitender Systemadministrator einen Auftrag erstellen, mit dem eine virtuelle Maschine erstellt und bereitgestellt und ein Basissatz von Anwendungen oder Diensten auf dieser Maschine installiert wird. Dieser Auftrag kann jedes Mal ausgeführt werden, wenn eine neue virtuelle Maschine bereitgestellt werden muss, um sicherzustellen, dass derselbe Satz an Anwendungen und Konfigurationen auf jede Bereitstellung angewendet wird. Nach dem Erstellen dieses Basisauftrags kann der leitende Systemadministrator einem Nachwuchsadministrator die Ausführung dieses Auftrags auf den Zielen (Knoten) übertragen, auf die seitens des Nachwuchsadministrators Zugriff besteht. Mithilfe der rollenbasierten Zugriffssteuerung (RBAC) in SaltStack Config und unter Berücksichtigung des Prinzips der geringsten Berechtigung kann der leitende Administrator bestimmen, welche Aufträge auf welchen Knoten (Minions) von einem Nachwuchsadministrator ausgeführt werden dürfen.

Das Erstellen und Ausführen von Aufträgen ist ein mehrstufiger Prozess, der die Verwendung verschiedener Tools und Arbeitsbereiche in SaltStack Config erfordert. Das folgende Diagramm enthält einen Überblick über den gesamten Auftragsworkflow:

Diagramm zur Erläuterung des Workflows „Aufträge“

Jeder Schritt wird in den folgenden Artikeln beschrieben: