Als Systemadministrator können Sie Aufträge in SaltStack Config erstellen, um Remoteausführungsaufgaben auszuführen, Zustände anzuwenden, Salt-Runner zu starten usw. Aufträge sind in der Regel für Systemvorgänge vorgesehen, die automatisiert und mehrmals ausgeführt werden müssen.

Bevor Sie beginnen

Aufträge in SaltStack Config enthalten in der Regel eines der Ausführungs- oder Zustandsmodule, die von der Salt-Open-Source-Community entwickelt wurden. Aus diesem Grund müssen Sie sich zunächst mit einigen der grundlegenden Konzepte des Salt-Systems vertraut machen. Darüber hinaus müssen Sie wissen, wie Sie mithilfe der verfügbaren Ausführungs- und Zustandsmodule allgemeine Verwaltungsaufgaben durchführen.

Weitere Informationen zu... Finden Sie unter...

Grundlagen der Arbeit mit Salt

Salt-Zustände

Salt-Ausführungs- und Statusmodule

  • Index des Salt-Moduls mit einer Liste aller Module
  • Weitere Unterstützung bei der Auswahl des Moduls, das Ihre speziellen Anforderungen am besten erfüllt, oder Antworten auf Fragen zur Verwendung eines bestimmten Moduls, erhalten Sie beim Community Support im Slack-Arbeitsbereich SaltStack Community.

Erstellen von Aufträgen

So erstellen Sie einen neuen Auftrag:

  1. Finden Sie heraus, mit welchen Salt-Ausführungs- oder Statusmodulen das gewünschte Ergebnis erzielt werden kann. Wenn Sie das Ihren Anforderungen entsprechende Salt-Modul gefunden haben, lesen Sie die Dokumentation des Moduls, um sicherzustellen, dass Sie mit den Parametern des Moduls und anderen Anforderungen vertraut sind.
  2. Falls im Rahmen Ihres Auftrags Salt-Zustandsmodule verwendet werden, erstellen Sie im SaltStack Config-Dateiserver eine neue Zustandsdatei. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Erstellen von Statusdateien und Pfeilerdaten.
  3. Erstellen Sie einen neuen Auftrag.
    1. Klicken Sie im seitlichen Menü auf Konfiguration > Aufträge, um den Arbeitsbereich „Aufträge“ zu öffnen.
    2. Klicken Sie auf die Schaltfläche Auftrag erstellen.
      Hinweis:

      Wenn die Schaltfläche „Auftrag erstellen“ nicht angezeigt wird, verfügen Sie nicht über die Berechtigung zum Erstellen neuer Aufträge. Wenden Sie sich an Ihren vRealize Automation-Administrator, um Zugriff zu erhalten oder diesen Auftrag zum Abschließen des Lernprogramms in Ihrem Namen zu erstellen.

    3. Geben Sie die Details für den neuen Auftrag ein.
      Feld Wert

      Name

      Geben Sie dem Auftrag einen aussagekräftigen Namen, der kurz den Zweck des Auftrags oder die Aufgabe angibt, die mit dem Auftrag ausgeführt werden soll. Beispiel: „Windows-Firewall-Einstellungen konfigurieren“.

      Beschreibung

      Fügen Sie eine Beschreibung hinzu, um andere Benutzer über den Zweck dieses Auftrags zu informieren, wie z. B. „Öffnet die Firewall für Port 445 auf Windows-Knoten“.

      Befehl

      • Wählen Sie salt für Aufträge aus, die für Minions ausgeführt werden.
      • Wählen Sie salt-run für Aufträge aus, die für den Salt-Master ausgeführt werden. salt-run-Aufträge werden auch als Salt-Runner bezeichnet. Salt-Runner sind Module, die zum Ausführen von Funktionen zur vereinfachten Handhabung auf dem Salt-Master verwendet werden. Mithilfe von Salt-Runnern können Sie Orchestrierungen ausführen, Minions remote einschalten, Webhooks aufrufen usw. Sie eignen sich, um Aufgaben zentral oder über einen zentralen Ausgangspunkt auszuführen. Beispielsweise können Sie einen Highstate auf alle Minions anwenden, die einem bestimmten Salt-Master zugeordnet sind.

      Falls Sie nicht sicher sind, welche Option Sie auswählen sollen, verwenden Sie salt, da die meisten Aufträge für Minions ausgeführt werden.

      Hinweis: Wenn Sie den Befehl ändern möchten, wird eine neue Liste mit auswählbaren Funktionen angezeigt.

      Ziele

      Optional: Ein Ziel ist eine Gruppe von Minions, die auf einen oder mehrere Salt-Master verteilt sein können, auf die der Salt-Befehl eines Auftrags angewendet wird. Sie können Ziele für Ihre Aufträge im Arbeitsbereich „Minions“ oder im Arbeitsbereich „Ziele“ erstellen. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Erstellen von Zielen.

      Falls die Ziele zum Zeitpunkt der Ausführung des Auftrags ausgewählt werden sollen, treffen Sie in diesem Menü keine Auswahl. Wenn Sie dieses Feld leer lassen, können Sie das Ziel zum Zeitpunkt der Auftragsausführung auswählen. Durch die Definition eines Auftragsziels wird jedoch auch verhindert, dass der entsprechende Auftrag auf ungeeigneten Knoten ausgeführt wird.

      Funktion

      Wählen Sie aus, welches Salt-Modul bei der Ausführung dieses Auftrags ausgeführt werden soll. Klicken Sie auf dieses Feld und geben Sie den Namen des auszuwählenden Salt-Moduls ein oder wählen Sie ihn im Menü aus. Sie können auch einen eigenen Wert eingeben, falls sich das gewünschte Modul nicht im Dropdown-Menü befindet.

      Wenn mit diesem Auftrag eine Salt-Zustandsdatei auf einen Minion angewendet werden soll, verwenden Sie das Modul state.apply. Weitere Informationen hierzu finden Sie unter state.apply.

      Eine vollständige Liste der Salt-Module finden Sie im Index des Salt-Moduls. Unter Beispiele für gängige Aufträge finden Sie eine Tabelle, in der einige der am häufigsten verwendeten Module beschrieben werden.

      Argumente

      Über das Feld Argumente können Sie args und kwargs an das Salt-Modul übergeben.

      Jede Zeile im Feld Argumente steht für ein Argument. Wenn Sie beispielsweise das Modul file.copy verwenden, können Sie path/to/src/ und path/to/dst an das Modul übergeben.

      Sie können auch Schlüsselwortargumente verwenden. Beispielsweise können Sie src=path/to/src/ und dst=path/to/dst/ an das Modul file.copy übergeben.

      Eine vollständige Liste der Salt-Module finden Sie im Index des Salt-Moduls.

      Umgebungen

      Dieses Feld ist nur verfügbar, wenn es auf die ausgewählte Funktion (z. B. state.apply oder state.highstate) anwendbar ist.

      Wählen Sie die gewünschte Salt-Umgebung im Menü aus oder geben Sie sie ein, wenn sie nicht in der Liste angezeigt wird. Falls Sie beispielsweise eine Zustandsdatei aus der Basisumgebung anwenden, wählen Sie im Menü base aus.

      Status

      Dieses Feld ist nur verfügbar, wenn es auf die ausgewählte Funktion (z. B. state.apply) anwendbar ist.

      Wählen Sie die Zustandsdatei, die Sie anwenden möchten, im Menü aus oder geben Sie sie ein, wenn sie nicht in der Liste angezeigt wird.

      Pfeiler-Außerkraftsetzung

      Dieses Feld ist nur verfügbar, wenn es auf die ausgewählte Funktion (z. B. state.apply) anwendbar ist. In diesem Feld werden Pfeilerdaten im JSON-Format akzeptiert. Die Pfeilerdaten werden in der Auftragsdefinition gespeichert und zur Laufzeit an die Modulfunktion übergeben.

      Die Verwendung des Feldes Pfeiler-Außerkraftsetzung in SaltStack Config entspricht dem Senden benutzerdefinierter Pfeilerwerte über die CLI. Werte, die auf diese Weise übergeben werden, überschreiben vorhandene Pfeilerwerte mithilfe von pillar_roots oder einer externen Pfeilerquelle. Pfeilerwerte, die nicht in kwarg enthalten sind, werden nicht überschrieben.

      Weitere Informationen zu Pfeilerdaten finden Sie unter Vorgehensweise zum Erstellen von Statusdateien und Pfeilerdaten.

      Screenshot eines Auftrags in SaltStack Config, für den alle Felder ausgefüllt sind
    4. Optional: Aktivieren Sie die Option Als Test ausführen (Testlauf), um einen Testauftrag auszuführen und einen simulierten Auftragsrücklauf zu generieren. „Als Test ausführen (Testlauf)“ ist nur für bestimmte Funktionen verfügbar, z. B. state.apply. Bei Auswahl von „Als Test ausführen (Testlauf)“ wird der Auftrag im Testlauf ausgeführt. Es werden keine Änderungen vorgenommen. Wenn diese Option nicht ausgewählt ist, können Sie den Auftrag später als Test ausführen.
    5. Optional: Fügen Sie Ihrem Auftrag Auftragseingaben hinzu. Weitere Informationen hierzu finden Sie unter Hinzufügen von Auftragseingaben.
  4. Speichern Sie den Auftrag und vergewissern Sie sich, dass er im Arbeitsbereich „Aufträge“ angezeigt wird.

Hinzufügen von Auftragseingaben

Als Systemadministrator können Sie Auftragseingaben verwenden, um Argumente oder Variablen zu konfigurieren, die andere Benutzer zur Laufzeit ändern können. Anstelle von mehreren Aufträgen für verschiedene Anwendungsfälle können Sie allgemeine Aufträge erstellen und dann optionale und erforderliche Auftragseingaben für Ihre Benutzer definieren. Dies kann dazu beitragen, dass Sie weniger Anforderungen zum Erstellen von Aufträgen erhalten.

Die Verwendung von Auftragseingaben hat unter anderem den Vorteil, dass Sie den Zugriff auf die Typen von Argumenten oder Variablen, die andere Administratoren zur Laufzeit der Aufgabe an die Funktion übergeben können, einschränken bzw. begrenzen können, diesen Administratoren dabei jedoch weiterhin die Möglichkeit geben, die Aufgaben durchzuführen, die für Aufgaben in ihrem Verantwortungsbereich erforderlich sind. Auf diese Weise stellen klar definierte Auftragseingaben sicher, dass Ihre Organisation standardmäßige Best Practices für die Sicherheit befolgt, beispielsweise das Prinzip der geringsten Privilegien.

Bevor Sie beginnen

Prüfen, welche Auftragseingaben Benutzer bearbeiten müssen

Bevor Sie Ihre Auftragseingaben definieren, sollten Sie überlegen, welche Auftragseingaben Benutzer zur Laufzeit sehen und bearbeiten können sollen. Denken Sie daran, dass neben Ihnen auch andere Personen diesen Auftrag ausführen können und dass ihnen die Auftragseingaben je nachdem, wie Sie diese eingerichtet haben, unterschiedlich angezeigt werden. Nehmen Sie sich etwas Zeit, um gründlich durchzudenken, welche Auftragseingaben diese Benutzer zur Laufzeit sehen und bearbeiten können sollen.

Angenommen, Sie erstellen einen Auftrag, der Konfigurationseinstellungen auf Server anwendet und dabei den Zweck oder die Rolle des jeweiligen Servers zugrunde legt. Sie könnten möglicherweise einen generischen Auftrag erstellen, der Konfigurationseinstellungen aus einer Zustandsdatei anwendet, und dann Auftragseingaben erstellen, mit deren Hilfe ein Administrator im Dropdown-Menü auswählen kann, welche Zustandsdatei angewendet wird. Zur Auftragslaufzeit würde dem Benutzer dann nur das Dropdown-Menü mit einer Liste der möglichen Zustandsdateien angezeigt, die Sie definiert haben.

Hierdurch erhalten Systemadministratoren durch Auftragseingaben mehr Kontrolle darüber, was andere Administratoren zur Auftragslaufzeit sehen und ändern dürfen. Gleichzeitig können Sie Flexibilität ermöglichen und dabei auch sicherstellen, dass andere Benutzer nur das ändern können, was innerhalb ihres Verantwortungsbereichs oder auf ihrer Berechtigungsstufe zulässig ist.

So definieren Sie Auftragseingaben:
  1. Klicken Sie im seitlichen Menü auf Konfiguration > Aufträge, um den Arbeitsbereich Aufträge zu öffnen.
  2. Wählen Sie einen Auftrag aus, um die Details des Auftrags zu öffnen.
  3. Scrollen Sie auf der Seite mit den Auftragsdetails nach unten zum Abschnitt Auftragseingaben.Screenshot einer Liste von Auftragseingaben
  4. Klicken Sie auf die Schaltfläche Auftragseingabe hinzufügen.
  5. Geben Sie die Details für die Auftragseingabe ein.
    Feld Wert
    Anzeigename

    Legen Sie den Namen für die Auftragseingabe fest.

    Wenn ein Benutzer diese Auftragseingabe zur Laufzeit sieht, ist der Text, den Sie als Anzeigename eingeben, der wichtigste Indikator für die Funktion und den Zweck der Eingabe.

    Wählen Sie einen kurzen, präzisen und aussagekräftigen Namen aus, z. B. „Dienst zum Neustarten“.

    Eingabetyp

    Legen Sie den Typ der Auftragseingabe fest. Es gibt vier Eingabetypen: „Zeichenfolge“, „Zahl“, „Boolesch“ und „Auswählen“.

    • Verwenden Sie den Eingabetyp Zeichenfolge, wenn die Benutzer einen Wert eingeben sollen.
    • Verwenden Sie Zahl, wenn die Benutzer eine Menge oder Größe angeben sollen.
    • Verwenden Sie Boolesch für wahre oder falsche Szenarien.
    • Verwenden Sie Auswählen, wenn die Benutzer in einer Liste von Werten eine Auswahl treffen sollen. Bei den Werten in einer Liste vom Typ Auswählen kann es sich um Zeichenfolgen, Zahlen oder boolesche Werte handeln. Beispielsweise kann der Eingabetyp für die Auftragseingabe „Dienst zum Neustarten“ eine Liste vom Typ Auswählen mit Zeichenfolgen sein. Beispiel: httpd, sshd oder mysqld.

    Sehen Sie vor der Auswahl eines Eingabetyps im Salt-Modulindex nach. Der Eingabetyp wird durch das Salt-Modul bestimmt, das der Auftrag verwendet, und durch den Parameter, mit dem der Eingabetyp im Salt-Modul korreliert. Falls Sie den falschen Eingabetyp auswählen, schlägt der Auftrag fehl.

    Bei Auftragsausführung anzeigen

    Damit erlauben Sie Benutzern, Werte bei der Ausführung des Auftrags anzuzeigen und zu bearbeiten.

    Wenn Sie diese Einstellung umschalten, wird das Feld Hilfetext im Fenster Auftragseingabe bearbeiten angezeigt.

    Falls Sie Schwierigkeiten haben, einen kurzen und präzisen Anzeigenamen zu finden, können Sie im Feld Hilfetext zusätzliche Informationen zur Auftragseingabe bereitstellen. Sie können hier beispielsweise eine Situation beschreiben, bei der ein Benutzer einen Wert angeben muss.

    Dieser Hilfetext wird unter einer QuickInfo (?) neben dem Namen der Auftragseingabe angezeigt, wenn ein Benutzer den Auftrag ausführt.

    Schlüsselwort

    Geben Sie den Parameter oder das Argument an, der bzw. das an die auszuführende Modulfunktion übergeben wird. Weitere Informationen zu Modulfunktionen finden Sie im Salt-Modulindex.

    Hinweis: Auftragseingaben unterstützen keine positionsbezogenen Argumente ohne Schlüsselwort. Diese können im Auftrag unter Argumente angegeben werden, sie können aber bei der Auftragsausführung nicht bereitgestellt werden.

    Standardwert/Wert

    Wenn Bei Auftragsausführung anzeigen aktiviert ist, können Sie im optionalen Feld Standardwert einen Standardwert für die Auftragseingabe angeben. Benutzer können den Standardwert entweder an die Modulfunktion übergeben oder ihn zur Laufzeit ändern.

    Überlegen Sie, ob es hilfreich ist, einen Standardwert für Ihre Benutzer bereitzustellen. Durch die Angabe eines Standardwerts können Ihre Benutzer bei der Ausführung von Aufträgen Zeit sparen. Es kann jedoch auch Situationen geben, in denen er nicht benötigt wird. Beispiel: Für eine Auftragseingabe mit dem Namen „Datencenter“ ist möglicherweise kein Standardwert erforderlich, da der Wert variiert.

    Wenn Bei Auftragsausführung anzeigen deaktiviert ist, können Sie über das Feld Wert einen Standardwert an die Modulfunktion übergeben. Benutzer können den Wert nicht anzeigen oder bearbeiten.

    Erforderlich bei Auftragseingabe

    Wenn Bei Auftragsausführung anzeigen aktiviert ist, können Sie festlegen, dass Benutzer einen Wert für die Auftragseingabe angeben müssen.

    Überlegen Sie, ob es hilfreich ist, wenn die Benutzer einen Wert angeben müssen. Bedenken Sie beim Entwerfen Ihrer Aufträge, was geschehen könnte, wenn die Benutzer keinen Wert angeben. Falls der Auftrag ohne einen Wert fehlschlägt, legen Sie fest, dass er zur Laufzeit angegeben werden muss. Kann der Auftrag ohne Wert ausgeführt werden, können Sie die Auftragseingabe als optional einrichten.

    Falls möglich, erläutern Sie den Benutzern im Feld Hilfetext die Funktion der Auftragseingabe.

  6. Speichern Sie die Auftragseingabe und vergewissern Sie sich, dass sie in der Liste der Auftragseingaben auf der Seite „Auftragsdetails“ angezeigt wird.
    Hinweis:

    In der Liste der Auftragseingaben werden möglicherweise noch weitere Felder angezeigt, z. B. Umgebungen, Status oder Test. Dies hängt davon ab, welche Modulfunktion Sie verwenden. Wenn die Benutzer diese Eingaben zur Laufzeit sehen sollen, klicken Sie auf das Bleistiftsymbol neben dem Schlüsselwort, um die Auftragseingabe zu bearbeiten, und aktivieren Sie Bei Auftragsausführung anzeigen.

  7. Speichern Sie den Auftrag.
  8. Um zu überprüfen, ob Ihre Auftragseingaben wie erwartet funktionieren, melden Sie sich bei SaltStack Config als Benutzer an, der Aufträge mit einer niedrigeren Berechtigungsstufe oder einer Rolle mit weniger Zugriffsrechten ausführen kann.

    Wenn eine Auftragseingabe fehlt, der Auftrag fehlschlägt oder für die Auftragseingabe zusätzliche Argumente oder Beschreibungen benötigt werden, nehmen Sie alle erforderlichen Anpassungen am Auftrag vor, bevor die Benutzer ihn ausführen können.

Nächste Schritte

Nachdem Sie den Auftrag erstellt haben, können Sie ihn entweder ad hoc oder basierend auf einem regelmäßigen Zeitplan ausführen. Weitere Informationen finden Sie unter: