Der Highstate-Arbeitsbereich wird verwendet, um die Konfiguration Ihres Systems zu verwalten und zu überwachen. Sie können eine historische Ansicht der Highstate-Ausführungen in Ihrer Infrastruktur anzeigen, um Einblicke und Trends im Zusammenhang mit Konfigurationsabweichungen über alle Minions hinweg zu erhalten.

Als Systemadministrator wissen Sie, wie wichtig es ist, die Konfiguration Ihres Systems konform zu halten, alle Systeme mit Fehlern oder Änderungen zu identifizieren und diese Systeme so schnell wie möglich wieder konform zu machen. Der Highstate-Arbeitsbereich bietet wertvolle Einblicke in die Konfiguration Ihres Systems und enthält Tools, die Ihnen bei der Verwaltung von Konfigurationsabweichungen helfen können.

Der Highstate-Arbeitsbereich in der SaltStack Config-Benutzeroberfläche nach einer letzten Highstate-Ausführung

Was ist Highstate?

Statt jeden Minion oder jede Anwendung einzeln manuell zu konfigurieren, können Sie mithilfe des Statusverwaltungssystems von Automation Config Statusdateien erstellen, die auf viele Minions gleichzeitig angewendet werden können. Diese Statusdateien können eine Reihe von Anweisungen enthalten, die Automation Config darüber informieren, welche Vorgänge auf dem Minion in welcher Reihenfolge ausgeführt werden sollen. Darüber hinaus stellt das Statusverwaltungssystem sicher, dass jeder Minion ordnungsgemäß und möglichst effizient konfiguriert wird.

Wenn Sie jedoch über Hunderte von Statusdateien und Tausende von Minions verfügen, dauert das Ausführen jeder Statusdatei einige Zeit. Eine schnellere, intuitivere Möglichkeit, Statusdateien auf Ihre Minions anzuwenden, ist die Ausführung von Highstate. Wenn Sie Highstate ausführen, wird die state.highstate-Funktion aufgerufen. Die state.highstate-Funktion wendet alle Salt-Zustände an, die in einer top.sls-Datei beschrieben sind, die Sie auf Ihrem Salt-Master erstellen.

Die Ausführung von Highstate kann in den folgenden Szenarien nützlich sein:
  • Sie richten Ihre Infrastruktur zum ersten Mal ein und müssen Konfigurationen in Ihrer Umgebung standardisieren.
  • Sie verfügen über kritische Systeme, die den Vorschriften entsprechen müssen. Der Arbeitsbereich Zeitpläne in Automation Config kann verwendet werden, um einen Highstate-Auftrag zu planen, der einmal pro Woche ausgeführt wird, um sicherzustellen, dass Ihre Maschinen ordnungsgemäß konfiguriert sind.

Die top.sls-Datei ordnet Salt-Zustände einer Gruppe von Zielen zu und besteht aus der auszuführenden Salt-Umgebung, den Zielkriterien und den Statusdateien. Die Minions laden die top.sls-Datei herunter und versuchen, die darin enthaltenen Ausdrücke anzupassen. Wenn ein Minion mit dem Ausdruck übereinstimmt, werden die angegebenen Statusdateien ausgeführt. Beispielsweise können Sie Ihre top.sls-Datei so organisieren, dass bestimmte Statusdateien auf alle Minions, einige auf CentOS-Minions und andere auf Minions angewendet werden, deren IDs die Zeichenfolge web enthalten.

base: 
  '*':
    - vim
    - scripts
  'os:CentOS': 
    - match: grain 
    - centos-config 
  '*web*':
    - apache
    - django

Wenn eine Konfiguration während der Ausführung von Highstate abgewichen ist, versetzt Automation Config die Minions und Anwendungen wieder in den konformen Konfigurationsstatus. Wenn eine Konfiguration geändert werden muss, kann Automation Config diese Änderungen schnell auf den betroffenen Minions bereitstellen. Sie können dann den Highstate-Arbeitsbereich verwenden, um zu sehen, welche Änderungen während der letzten Highstate-Ausführung vorgenommen wurden. Diagramme und Berichte im Arbeitsbereich helfen auch, die Änderungen in Ihrer Infrastruktur zu visualisieren.

Testen Sie Ihre Änderungen in einer Entwicklungs- oder Staging-Umgebung. Wenn Ihre Zustände erfolgreich sind, können Sie sie in Ihrer Produktionsumgebung anwenden.

Sie können Highstate auch im Testlaufmodus ausführen. Wenn Sie Highstate im Testlaufmodus ausführen, generiert Automation Config einen Auftragsrücklauf, der anzeigt, welche Änderungen an jedem Minion vorgenommen werden würden, wenn die Statusangaben angewendet würden. Weitere Informationen zum Testlaufmodus finden Sie unter Vorgehensweise zum Erstellen von Aufträgen.

Wichtig:

Sie müssen die top.sls-Datei auf Ihrem Salt-Master erstellen und konfigurieren, bevor Sie Highstate zum ersten Mal ausführen. Weitere Informationen zu Salt-Zuständen und der Datei top.sls finden Sie im Salt-Benutzerhandbuch unter Organisieren von Zuständen.

Highstate ausführen

Nachdem Sie die top.sls-Datei konfiguriert haben, können Sie Ihren ersten Highstate ausführen.

So führen Sie Highstate aus:

  1. Klicken Sie im Highstate-Arbeitsbereich auf die Registerkarte Zustände.
  2. Klicken Sie auf Highstate ausführen.
  3. Wählen Sie im Dialogfeld ein Ziel aus, auf dem Highstate ausgeführt werden soll.
  4. Klicken Sie auf Highstate ausführen.

Nach Abschluss der Highstate-Ausführung können Sie die Ergebnisse Ihrer ersten Highstate-Ausführung auf mehreren Ebenen anzeigen:

  • Globale Ebene: Highstate-Rückgaben in Ihrer Umgebung anzeigen
  • Zielebene: Highstate-Rückgaben nach Zielgruppe anzeigen
  • Minion-Ebene: Highstate-Rückgaben nach Minion

Globale Ebene

Sie können die Highstate-Übereinstimmung in Ihrer Umgebung über die Registerkarten Status und Minions anzeigen. Diese globale Ebene hilft Ihnen, den Gesamtstatus der Konfiguration Ihres Systems seit der letzten Highstate-Ausführung zu bewerten.

Der Highstate-Arbeitsbereich in der SaltStack Config-Benutzeroberfläche nach einer letzten Highstate-Ausführung

Auf allen Ebenen werden die neuesten Highstate-Daten von jedem Minion abgerufen, unabhängig davon, ob die Daten aus einer aktuellen Highstate-Ausführung oder aus vielen Highstate-Ausführungen stammen. Sie können das Dropdown-Menü Grenzwert nach auf der Registerkarte Zustände verwenden, um sicherzustellen, dass im Arbeitsbereich Highstate nur die neuesten Daten angezeigt werden.

Die globale Ebene enthält die folgenden Informationen für alle Zustände:

Begriff Beschreibung
Status Die ID-Deklaration für den Status, z. B common-centos-packages.
SLS-Datei Die Datei, die die Statusdeklaration enthält, z. B. centos-config.sls.
Minions Die Anzahl der Minions, die den Status ausgeführt haben.
Fehler Gibt an, ob die Statusausführung fehlgeschlagen ist. Der Status schlägt aus vielen Gründen fehl. Beispiel:
  • Eine erforderliche Datei ist nicht vorhanden oder aufgrund von Dateisystemberechtigungen nicht zugänglich.
  • Eine Netzwerkressource oder ein Dienst ist nicht verfügbar.
  • Es besteht ein Paketabhängigkeitskonflikt, sodass der Status nicht angewendet werden kann.

Die Spalte Kommentare enthält weitere Details zur Ursache des Statusfehlers.

Erfolgreich Gibt den Gesamtprozentsatz der Statusangaben an, die erfolgreich ausgeführt wurden.
Geändert Gibt den Gesamtprozentsatz der Minions an, die Änderungen für jeden Status gemeldet haben.
Änderungen Gibt an, ob die letzte Highstate-Ausführung zu Änderungen geführt hat.

Die Spalte Kommentare enthält weitere Details zu den vorgenommenen Änderungen.

Durchschnittl. Dauer Durchschnittliche Dauer der Statusausführung in Millisekunden (ms).
Umgebungen Die Salt-Umgebung, die die Statusdatei enthält, z. B. base oder dev.
JID Die Auftragsidentifikationsnummer für die state.highstate-Ausführung.

Wenn Sie auf der Registerkarte Status auf einen Status klicken, können Sie die neueste Highstate-Ausführung auf jedem Ihrer Salt-Minions anzeigen.

Alle vorherigen Highstate-Ausführungen für den standardmäßigen HTML-Seitenstatus in SaltStack Config

Die folgenden Informationen werden für jeden Status bereitgestellt:

Begriff Beschreibung
Minion-ID Die ID für den Minion, der den Status ausgeführt hat.
Status Gibt an, ob die Statusausführung erfolgreich war oder fehlgeschlagen ist.
Änderungen Gibt an, ob die letzte Highstate-Ausführung zu Änderungen geführt hat.

Die Spalte Kommentare enthält weitere Details zu den vorgenommenen Änderungen.

Umgebung Die Salt-Umgebung, die die Statusdatei enthält, z. B. base oder dev.
Cluster/Master Der Salt-Master, der dem Minion zugeordnet ist.
Dauer Dauer der Statusausführung in Millisekunden (ms).
Kommentar Eine Meldung, die weitere Einzelheiten über den Erfolg oder Misserfolg der Statusausführung liefert.
JID Die Auftragsidentifikationsnummer für die state.highstate-Ausführung.

Sie können auch einen Ad-hoc-Highstate-Auftrag auf globaler Ebene ausführen:

  1. Öffnen Sie in Automation Config den Highstate-Arbeitsbereich.
  2. Klicken Sie auf Highstate ausführen.
  3. Wählen Sie im Dialogfeld ein Ziel aus, auf dem Highstate ausgeführt werden soll.
  4. Klicken Sie auf Highstate ausführen.

Sie können den Fortschritt des Auftrags auf der Registerkarte Aktivität des Highstate-Arbeitsbereichs überwachen. Nach Abschluss des Auftrags können Sie die aktualisierten Berichte und Details der Highstate-Ausführung auf globaler, Ziel- oder Minion-Ebene anzeigen.

Zielebene

Um Highstate-Rückgaben auf der Zielebene anzuzeigen, können Sie den Ziele-Arbeitsbereich öffnen. Wenn Sie auf ein Ziel klicken, werden alle vorherigen Statusausführungen für alle Minions in der Zielgruppe angezeigt.

Vorherige Highstate-Ausführungen für eine CentOS-Zielgruppe in SaltStack Config

Die Zielebene enthält die folgenden Informationen zu jedem Minion in der Zielgruppe:

Begriff Beschreibung
Minion-ID Die ID des Minions.
Statusausführungen Die Anzahl der Statusausführungen für einen Minion.
Fehler Gibt an, ob die Statusausführung fehlgeschlagen ist. Der Status kann aus vielen Gründen fehlschlagen. Beispiel:
  • Eine erforderliche Datei ist nicht vorhanden oder aufgrund von Dateisystemberechtigungen nicht zugänglich.
  • Eine Netzwerkressource oder ein Dienst ist nicht verfügbar.
  • Es besteht ein Paketabhängigkeitskonflikt, sodass der Status nicht angewendet werden kann.

Die Spalte Kommentare enthält weitere Details zur Ursache des Statusfehlers.

Erfolgreich Gibt den Gesamtprozentsatz der Statusangaben an, die erfolgreich ausgeführt wurden.
Geändert Gibt den Gesamtprozentsatz der Statusangaben an, bei denen es zu Änderungen kam.
Änderungen Gibt an, ob die letzte Highstate-Ausführung zu Änderungen geführt hat.

Die Spalte Kommentare enthält weitere Details zu den vorgenommenen Änderungen.

Dauer Dauer der Statusausführung in Millisekunden (ms).
Umgebungen Die Salt-Umgebung, die die Statusdatei enthält, z. B. base oder dev.
JID Die Auftragsidentifikationsnummer für die state.highstate-Ausführung.

So führen Sie einen Ad-hoc-Highstate-Auftrag auf globaler Ebene aus:

  1. Öffnen Sie in Automation Config den Ziele-Arbeitsbereich.
  2. Wählen Sie die Zielgruppe aus, auf der Sie Highstate ausführen möchten.
  3. Klicken Sie auf die Registerkarte Highstate.
  4. Klicken Sie auf Highstate ausführen.
  5. Bestätigen Sie im Dialogfeld die Zielgruppe, für die Sie Highstate ausführen möchten.
  6. Klicken Sie auf Highstate ausführen.

Minion-Ebene

Um die Highstate-Rückgaben auf der Ebene der Minions anzuzeigen, können Sie die Registerkarte Minions im Highstate-Arbeitsbereich öffnen.

Highstate-Rückgaben für alle Minions in einer SaltStack Config-Umgebung

Die Minion-Ebene bietet die folgenden Informationen für alle Minions:

Begriff Beschreibung
Minion-ID Die ID des Minions.
Statusausführungen Die Anzahl der Statusausführungen für einen Minion.
Fehler Gibt an, ob die Statusausführung fehlgeschlagen ist. Der Status kann aus verschiedenen Gründen fehlschlagen:
  • Eine erforderliche Datei ist nicht vorhanden oder aufgrund von Dateisystemberechtigungen nicht zugänglich.
  • Eine Netzwerkressource oder ein Dienst ist nicht verfügbar.
  • Es besteht ein Paketabhängigkeitskonflikt, sodass der Status nicht angewendet werden kann.

Die Spalte Kommentare enthält weitere Details zur Ursache des Statusfehlers.

Erfolgreich Gibt den Gesamtprozentsatz der Statusangaben an, die erfolgreich ausgeführt wurden.
Geändert Gibt den Gesamtprozentsatz der Statusangaben an, bei denen es zu Änderungen für den Minion kam.
Änderungen Gibt an, ob die letzte Highstate-Ausführung zu Änderungen geführt hat.

Wenn Sie auf eine Minion-ID klicken, können Sie alle vorherigen Statusausführungen für einen Minion anzeigen.

Der gesamte Status wird für einen Salt-Minion im Highstate-Arbeitsbereich ausgeführt

Die folgenden Informationen werden bereitgestellt:

Begriff Beschreibung
Erfolgreich Gibt an, ob die Statusausführung erfolgreich war oder fehlgeschlagen ist.
Änderungen Gibt an, ob die letzte Highstate-Ausführung zu Änderungen geführt hat.
Umgebung Die Salt-Umgebung, die die Statusdatei enthält, z. B. base oder dev.
SLS-Datei Die Datei, die die Statusdeklaration enthält, z. B. centos-config.sls.
Status Die ID-Deklaration für den Status, z. B common-centos-packages.
Dauer Dauer der Statusausführung in Millisekunden (ms).
Kommentar Eine Meldung, die weitere Einzelheiten über den Erfolg oder Misserfolg der Statusausführung liefert.
JID Die Auftragsidentifikationsnummer für die state.highstate-Ausführung.

So führen Sie einen Ad-hoc-Highstate-Auftrag auf Minion-Ebene aus:

  1. Öffnen Sie in Automation Config den Highstate-Arbeitsbereich.
  2. Wählen Sie den Minion oder die Minions aus, auf der oder denen Sie Highstate ausführen möchten.
  3. Klicken Sie auf Highstate ausführen.
  4. Klicken Sie im Dialogfeld auf Highstate ausführen.

Highstate-Aktivität anzeigen

Die Registerkarte Aktivität im Highstate-Arbeitsbereich wird verwendet, um den Status der Highstate-Ausführungen zu überwachen. Auf der Registerkarte Aktivität werden viele Ereignisse und Aktivitäten angezeigt, z. B. geplante Aufträge oder Ad-hoc-Aufträge.

Ein interaktives Diagramm im Highstate-Arbeitsbereich, das die Anzahl der Minions mit und ohne Änderungen in den letzten 30 Tagen anzeigt

Das interaktive Diagramm auf der Registerkarte Aktivität enthält mehrere Berichte, die einen Überblick über vorherige Highstate-Ausführungen in Ihrer Automation Config-Umgebung bieten. Sie können die Ergebnisse der letzten 24 Stunden bis zu den letzten 30 Tagen für jeden Bericht anzeigen.

Bericht Beschreibung
Minion: durchschnittliche Dauer Zeigt die durchschnittliche Dauer für Statusausführungen für alle Minions über einen bestimmten Zeitraum hinweg an.
Minions: Änderungen oder keine Änderungen Zeigt die Anzahl der Minions an, die Änderungen gemeldet haben, im Vergleich zu Minions, die über einen bestimmten Zeitraum hinweg keine Änderungen gemeldet haben.
Minions: erfolgreich oder fehlgeschlagen Zeigt die Anzahl der Minions an, die erfolgreiche Statusausführungen gemeldet haben, im Vergleich zu Minions, die fehlgeschlagene Statusausführungen über einen bestimmten Zeitraum hinweg gemeldet haben.
Satusangaben: Änderungen oder keine Änderungen Zeigt über einen bestimmten Zeitraum hinweg die Anzahl der Statusangaben, die zu Änderungen geführt haben, im Vergleich zu den Statusangaben, die nicht zu Änderungen geführt haben, an.
Satusangaben: erfolgreich oder fehlgeschlagen Zeigt die Anzahl der erfolgreichen Statusangaben im Vergleich zu den fehlgeschlagenen Statusangaben an.

Die Registerkarte Aktivität enthält drei Abschnitte, in denen die Aufträge nach Status sortiert sind:

  • Abgeschlossen: Wird zur Überwachung des Status von abgeschlossenen Highstate-Aufträgen verwendet.
  • In Bearbeitung: Wird zur Überwachung des Status von Highstate-Aufträgen verwendet, die derzeit ausgeführt werden.
  • Bevorstehend: Wird zur Überwachung des Status von bevorstehenden Highstate-Aufträgen verwendet.

Die Tabelle auf der Registerkarte Aktivität enthält Informationen zu Status, Ursprung, Zeitplan (sofern verfügbar), Auftrag, Zielgruppe und zugehöriger Auftrags-ID (JID). Sie können die Spalten nach Bedarf filtern.