Im Rahmen des Verfahrens nach der Installation müssen Sie das Master-Plug-In installieren, konfigurieren und aktualisieren. Das Master-Plug-In ermöglicht Ihren Salt-Mastern die Kommunikation mit Automation Config. Das Master-Plug-In enthält eine Reihe von Einstellungen, die Sie anpassen können, um die Leistung zu verbessern. Dies ist besonders für umfangreiche oder ausgelastete Umgebungen nützlich.

In der Regel installieren Sie das Master-Plug-In auf jedem Salt-Master in Ihrer Umgebung, der mit Automation Config kommuniziert. Wenn Sie beispielsweise eine Konfiguration mit mehr als einem Salt-Master verwenden (gelegentlich als Multi-Master-Setup bezeichnet), müssen Sie das Master-Plug-In auf jedem Salt-Master installieren.

Bevor Sie beginnen

Das Installieren und Konfigurieren des Master-Plug-Ins ist ein Schritt in einer Reihe von Schritten nach der Installation, die in einer bestimmten Reihenfolge auszuführen sind. Schließen Sie zunächst eines der Installationsszenarien ab und lesen Sie sich dann die Seite Installieren des Lizenzschlüssels für die Vorgehensweise nach der Installation durch.

Sie müssen die PyJWT-Bibliothek mit dem folgenden Befehl auf Ihrem Salt-Master installieren:
pip3 install pyjwt==2.3.0

Wann muss das Master-Plug-In-In installiert werden?

Sie müssen das Master-Plug-In nach einer Neuinstallation von Automation Config auf allen Salt-Mastern installieren. Das Master-Plug-In ist nicht auf Salt-Mastern erforderlich, die nicht mit Automation Config kommunizieren müssen.

Wenn Sie das Installationsszenario Installieren von SaltStack Config für weniger als 1000 Knoten verwendet haben, müssen Sie das Master-Plug-In nicht auf dem Knoten installieren, auf dem Sie Automation Config und die zugehörige Architektur installiert haben. Das Installationsprogramm installiert das Master-Plug-In automatisch auf dem Salt-Master-Knoten. Das Master-Plug-In wird jedoch nur auf dem Salt-Master installiert, auf dem Sie das Installationsprogramm ausführen. Wenn Sie über mehrere Master verfügen, müssen Sie das Master-Plug-In dennoch auf Ihren anderen Mastern installieren.

Wenn Sie Automation Config manuell installieren (nicht empfohlen), sollten Sie vor dem Installieren des Master-Plug-Ins folgende Schritte ausführen:

  • Installieren und Konfigurieren der PostgreSQL-Datenbank
  • Installieren und Konfigurieren der Redis-Datenbank
  • Aktivieren von SSL (optional)
Wichtig: Es wird für jede Version empfohlen, Ihre Master-Plug-In-Konfiguration zu aktualisieren, indem Sie eine Standardkonfigurationsdatei generieren und dann alle Einstellungen anwenden, die Sie aus Ihrer vorhandenen Konfiguration beibehalten möchten. Beispiel:
# sseapi-config --default >/tmp/raas.conf 
# cd /etc/salt/master.d 
# vim -d raas.conf /tmp/raas.conf 
...

Wenn Sie Salt mithilfe von onedir installiert haben, lautet der Pfad zu dieser ausführbaren Datei /opt/saltstack/salt/extras-3.10/bin/sseapi-config.

Installieren des Master-Plug-Ins mithilfe des Arbeitsbereichs „Master-Plug-Ins“

Hinweis: Diese Funktion wird für Automation Config Version 8.11.2 oder höher unterstützt.
Hinweis: Der Salt-Master muss als Root-Benutzer ausgeführt werden.

Sie können die neueste Master-Plug-In-Version von der Automation Config-Benutzeroberfläche herunterladen und installieren, indem Sie zu Verwaltung > Master Plug-Ins navigieren. Auf der Registerkarte „Master-Plug-Ins“ können Sie entweder das Plug-In oder den Client herunterladen.

Nach dem Herunterladen des Master-Plug-Ins müssen Sie das Master-Plug-In konfigurieren.

Installieren des Master-Plug-Ins mithilfe der CLI

So installieren Sie das Master-Plug-In auf Ihrem Salt-Master:

Ab Version 8.13.0 enthält das Master-Plug-In eine tgtmatch-Engine, die jetzt den Zielgruppenabgleich vom RaaS-Server auf die Salt-Master auslädt. Es wird empfohlen, diese tgtmatch-Engine zu aktivieren und zu konfigurieren, damit der Zielgruppenabgleich reaktionsfähiger ist, insbesondere in Umgebungen mit:

  • Einer großen Anzahl von Zielgruppen (100 oder mehr)
  • Einer großen Anzahl von Minions (3.000 oder mehr)
  • Häufigen Änderungen an Minion Grains (täglich oder häufiger)
  • Häufiger Erstellung und Löschung von Minions (täglich oder häufiger)
Um RaaS so zu konfigurieren, dass Zielabgleichsdaten von den Salt-Mastern bereitgestellt werden, stellen Sie sicher, dass die folgende Einstellung in der RaaS-Konfigurationsdatei (/etc/raas/raas) vorhanden ist:
target_groups_from_master_only: true
  1. Melden Sie sich bei Ihrem Salt-Master an.
  2. Laden Sie sich bei Bedarf das Master-Plug-In-Wheel von Customer Connect herunter.

    Das Master-Plug-In ist in der TAR.GZ-Datei des automatisierten Installationsprogramms enthalten. Nach dem Herunterladen und Extrahieren der TAR.GZ-Datei befindet sich das Master-Plug-In im Verzeichnis sse-installer/salt/sse/eapi_plugin/files.

  3. Führen Sie ein Upgrade des Master-Plug-Ins durch, indem Sie das aktualisierte Python-Wheel manuell deinstallieren und erneut installieren. Verwenden Sie die folgenden Beispielbefehle, ersetzen Sie dabei den genauen Namen der Wheel-Datei:
    Hinweis: Das vorhandene Plug-In muss deinstalliert werden, um mehrere Instanzen von sseapi-config zu verhindern.
    pip3 uninstall SSEAPE-8.12.1.3-py3-none-any.whl
    mv /etc/salt/master.d/raas.conf /tmp
    salt-call pip.install SSEAPE-8.12.1.3-py3-none-any.whl
    cp /tmp/raas.conf /etc/salt/master.d/raas.conf
    systemctl restart salt-master

Konfigurieren des Master-Plug-Ins

So konfigurieren Sie den Salt-Master nach dem Installieren des Master-Plug-Ins:

  1. Melden Sie sich bei Ihrem Salt-Master an und überprüfen Sie, ob das Verzeichnis /etc/salt/master.d vorhanden ist. Ist dies nicht der Fall, erstellen Sie es.
  2. Generieren Sie die Master-Konfigurationseinstellungen.
    Vorsicht: Wenn Sie Ihre Einstellungen beim Upgrade Ihrer Installation beibehalten möchten, erstellen Sie vor dem Ausführen dieses Schrittes eine Sicherung Ihrer vorhandenen Master-Plug-In-Konfigurationsdatei. Kopieren Sie dann die relevanten Einstellungen aus Ihrer vorhandenen Konfiguration in die neu generierte Datei.
    sudo sseapi-config --all > /etc/salt/master.d/raas.conf
    Wichtig: Wenn Sie Salt mithilfe von onedir installiert haben, lautet der Pfad zu dieser ausführbaren Datei /opt/saltstack/salt/extras-3.10/bin/sseapi-config.
  3. Bearbeiten Sie die generierte Datei raas.conf und aktualisieren Sie die Werte wie folgt:
    Wert Beschreibung

    sseapi_ssl_validate_cert

    Validiert das von der API (RaaS) verwendete Zertifikat. Die Standardeinstellung ist True.

    Wenn Sie Ihre eigenen, von einer Zertifizierungsstelle ausgestellten Zertifikate verwenden, legen Sie diesen Wert auf True fest und konfigurieren Sie die sseapi_ssl_ca-, sseapi_ssl_cert- und sseapi_ssl_cert:-Einstellungen.

    Legen Sie dies andernfalls auf False fest, um das Zertifikat nicht zu validieren.

    sseapi_ssl_validate_cert:False

    sseapi_server

    HTTP-IP-Adresse Ihres RaaS-Knotens, z. B. http://example.com oder https://example.com, wenn SSL aktiviert ist.

    sseapi_command_age_limit

    Legt das Alter (in Sekunden) fest, nach dem ältere, potenziell veraltete Aufträge übersprungen werden. Um beispielsweise Aufträge zu überspringen, die älter als ein Tag sind, legen Sie diese Einstellung auf Folgendes fest:

    sseapi_command_age_limit:86400

    Übersprungene Aufträge sind weiterhin in der Datenbank vorhanden und werden mit dem Status Completed in Automation Config angezeigt.

    In bestimmten Umgebungen muss der Salt-Master möglicherweise längere Zeit offline ausgeführt werden und nach Rückkehr in den Online-Status alle in die Warteschlange gestellten Aufträge durchführen. Wenn dies für Ihre Umgebung gilt, legen Sie die Altersgrenze auf 0 fest.

    sseapi_windows_minion_deploy_delay Legt eine Verzögerung fest, damit alle erforderlichen Windows-Dienste aktiviert werden können. Der Standardwert beträgt 180 Sekunden.
    sseapi_linux_minion_deploy_delay Legt eine Verzögerung fest, damit alle erforderlichen Linux-Dienste aktiviert werden können. Der Standardwert beträgt 90 Sekunden.
    sseapi_local_cache
         load: 3600
         tgt: 86400
         pillar: 3600
         exprmatch: 86400
         tgtmatch: 86400

    Legt fest, wie lange bestimmte Daten lokal auf jedem Salt-Master zwischengespeichert werden. Die Werte werden in Sekunden angegeben. Bei den Beispielwerten handelt es sich um empfohlene Werte.

    • load- salt save_load()-Nutzlasten

    • tgt- SSE-Zielgruppen

    • pillar- SSE-Pfeilerdaten (verschlüsselt)

    • exprmatch- SSE-Daten für den Zielausdruckabgleich

    • tgtmatch- SSE-Daten für den Zielgruppenabgleich

  4. OPTIONAL: Dieser Schritt ist nur für manuelle Installationen erforderlich. Um sicherzustellen, dass Sie sich mit SSL verbinden können, bevor Sie eine Verbindung zum Master-Plug-In herstellen, bearbeiten Sie die generierte raas.conf-Datei, um die folgenden Werte zu aktualisieren. Wenn Sie diese Werte nicht aktualisieren, verwendet das Master-Plug-In das generierte Standardzertifikat.
    Wert Beschreibung
    sseapi_ssl_ca Der Pfad zu einer Zertifizierungsstellendatei.
    sseapi_ssl_cert Der Pfad zum Zertifikat. Der Standardwert lautet /etc/pki/raas/certs/localhost.crt.
    sseapi_ssl_key Der Pfad zum privaten Schlüssel des Zertifikats. Der Standardwert lautet /etc/pki/raas/certs/localhost.key.
    id Kommentieren Sie dieses Line-Out, indem Sie am Anfang ein # hinzufügen. Nicht obligatorisch.
  5. OPTIONAL: Aktualisieren leistungsbezogener Einstellungen. In großen oder ausgelasteten Umgebungen können Sie die Leistung der Kommunikation zwischen dem Salt-Master und Automation Config durch Anpassung der folgenden Einstellungen verbessern.
    • Konfigurieren Sie die Master-Plug-In-Engines:

      Die Master-Plug-In-Engines eventqueue und rpcqueue lagern bestimmte Kommunikationen mit Automation Config aus leistungskritischen Codepfaden in dedizierte Prozesse aus. Während die Engines auf die Kommunikation mit Automation Config warten, werden Nutzlasten im lokalen Dateisystem des Salt-Masters gespeichert, damit die Daten bei Neustarts des Salt-Masters beibehalten werden können. Die tgtmatch-Engine verschiebt die Berechnung der Minion-Zielgruppen-Übereinstimmungen vom RaaS-Server zu den Salt-Mastern.

      Stellen Sie zum Aktivieren der Engines sicher, dass die folgenden Einstellungen in der Konfigurationsdatei des Salt-Master-Plug-Ins (raas.conf) vorhanden sind:

      engines: 
           - sseapi: {} 
           - eventqueue: {} 
           - rpcqueue: {} 
           - jobcompletion: {} 
           - keyauth: {} 
           - tgtmatch: {}

      Um die eventqueue-Engine zu konfigurieren, stellen Sie sicher, dass die folgenden Einstellungen vorhanden sind:

      sseapi_event_queue: 
        name: sseapi-events 
        strategy: always 
        push_interval: 5 
        batch_limit: 2000 
        age_limit: 86400 
        size_limit: 35000000 
        vacuum_interval: 86400 
        vacuum_limit: 350000 

      Die Warteschlangenparameter können im Hinblick auf deren Zusammenarbeit angepasst werden. Wenn man beispielsweise von durchschnittlich 400 Ereignissen pro Sekunde auf dem Salt-Ereignisbus ausgeht, können sich gemäß der oben angezeigten Einstellungen etwa 24 Stunden Ereignisverkehr in der Warteschlange auf dem Salt-Master sammeln, bevor die ältesten Ereignisse aufgrund von Größen- oder Altersbeschränkungen verworfen werden.

      Um die rpcqueue-Engine zu konfigurieren, überprüfen Sie die folgenden Einstellungen in raas.conf:

      sseapi_rpc_queue: 
        name: sseapi-rpc 
        strategy: always 
        push_interval: 5 
        batch_limit: 500 
        age_limit: 3600 
        size_limit: 360000 
        vacuum_interval: 86400 
        vacuum_limit: 100000 
      Stellen Sie zum Konfigurieren der tgtmatch-Engine sicher, dass diese Einstellungen in der Konfigurationsdatei des Master-Plug-Ins (/etc/salt/master.d/raas.conf) vorhanden sind.
      engines: 
          - sseapi: {} 
          - eventqueue: {} 
          - rpcqueue: {} 
          - jobcompletion: {} 
          - keyauth: {} 
          - tgtmatch: {} 
      
      sseapi_local_cache:     
          load: 3600 
          tgt: 86400 
          pillar: 3600 
          exprmatch: 86400 
          tgtmatch: 86400 
      
      sseapi_tgt_match: 
          poll_interval: 60     
          workers: 0 
          nice: 19
      Hinweis: Um den Zielabgleich auf den Salt-Mastern zu verwenden, muss die folgende Konfigurationseinstellung auch in der RaaS-Konfiguration vorhanden sein: target_groups_from_master_only: true.
    • Nutzlastgröße der Minion-Körner („Grains“) begrenzen:
      sseapi_max_minion_grains_payload: 2000
    • Aktivieren Sie das Überspringen von Aufträgen, die älter als eine festgelegte Zeit (in Sekunden) sind. Beispiel: Legen Sie mithilfe von 86400 fest, dass Aufträge, die älter als ein Tag sind, übersprungen werden. Wenn Sie den Wert auf 0 festlegen, wird diese Funktion deaktiviert:
      sseapi_command_age_limit:0
      Hinweis:

      Während System-Upgrades ist die Aktivierung dieser Einstellung nützlich, um zu verhindern, dass alte in der Datenbank gespeicherte Befehle unerwartet ausgeführt werden.

    Zusammen erhöhen Ereigniswarteschlangen in Salt und die Warteschlangen-Engines, Salt-Master-Zielabgleich, die Grenzwerte für die Nutzlastgröße der Grains und die Altersgrenze für Befehle im Salt-Master-Plug-In den Durchsatz und reduzieren die Latenz der Kommunikation zwischen dem Salt-Master und Automation Config in leistungsabhängigen Codepfaden.

  6. Starten Sie den Masterdienst neu.
    sudo systemctl restart salt-master
  7. OPTIONAL: Sie möchten möglicherweise einen Testauftrag ausführen, um sicherzustellen, dass das Master-Plug-In nun die Kommunikation zwischen dem Master- und dem RaaS-Knoten ermöglicht.
    salt -v '*' test.ping

Selbst wenn keine Aktivität erfolgt, wie z. B. wenn keine Minions verbunden sind, deutet dies vermutlich auf eine korrekte Konfiguration hin.

Referenz der Konfigurationseinstellungen

Mithilfe dieser Einstellungen in der Konfigurationsdatei kann jeder Salt-Master eine Verbindung zur API (RaaS) herstellen. Diese Einstellungen stehen in der /etc/salt/master.d/raas.conf-Konfigurationsdatei zur Verfügung.

Wichtig:

Salt-Master-Einstellungen in der Datei „raas.conf“ haben Vorrang vor vorhandenen Einstellungen in /etc/salt/master. Wenn Sie die Einstellungen fileserver_backend oder ext_pillar in /etc/salt/master angepasst haben, müssen Sie diese Einstellungen manuell zusammenführen, damit sie in nur einer Datei angezeigt werden. Optional können Sie die Backends neu anordnen, um die Rangfolge zu ändern.

In der folgenden Tabelle werden die allgemeinen Konfigurationseinstellungen erläutert:

Option Beschreibung
id Salt-Master-ID, wird gegebenenfalls automatisch erzeugt
sseapi_server URL des SSEAPI-Servers, z. B. https://sse.example.com:443
engines Zu aktivierende Salt-Engines, sseapi, eventqueue, rpcqueue, jobcompletion und keyauth werden empfohlen.
master_job_cache sseapi zum Verwenden des Auftragszwischenspeichers des Automation Config-Masters
event_return Salt-Ereignis-Returner, sseapi wird zur Verwendung des Automation Config-Ereignis-Returner verwendet
ext_pillar Externe Pfeilerquellen, empfohlen sseapi
fileserver_backend Dateiserver-Backends, empfohlen sseapi und roots
sseapi_update_interval Häufigkeit der Aktualisierung aus Dateiserver (Sekunden, Standardwert: 60)
sseapi_poll_interval Häufigkeit der Abfrage von Automation Config auf neue Daten (Sekunden, Standardwert: 30)
sseapi_jce_poll_interval fügt eine Verzögerung zwischen Iterationen in der jobcompletion-Engine hinzu, sodass maximal 5.760 find_job-Befehle pro Tag pro Salt-Master gesendet werden (Sekunden, Standard: 15)
sseapi_timeout Zeitüberschreitung für API-Aufrufe (RaaS) (Sekunden, Standardwert: 200)
sseapi_pubkey_path Pfad zur öffentlichen Schlüsseldatei für die Authentifizierung des Salt-Masters bei Automation Config
sseapi_key_rotation Rotationsintervall des Automation Config-Authentifizierungsschlüssels des Salt-Masters (Sekunden, Standardwert: 86400)
sseapi_cache_pillar Ob Pfeilerdaten innerhalb von Automation Config zwischengespeichert werden (True oder False, Standardwert: False)
sseapi_cluster_id (optional) Clustername des Salt-Masters zum Gruppieren von Salt-Mastern in Clustern innerhalb von Automation Config
sseapi_failover_master Ob es sich bei diesem Salt-Master um einen Failover-Salt-Master handelt (True oder False, Standardwert: False)
sseapi_command_age_limit Ob API-Befehle (RaaS) übersprungen werden, die älter als eine definierte Zeit sind (Sekunden, 0 zum Deaktivieren, Standardwert: 0)

In der folgenden Tabelle werden die SSL-Einstellungen erläutert:

Option Beschreibung
sseapi_ssl_key Pfad des privaten Schlüssels des Zertifikats.
sseapi_ssl_cert Pfad zum Zertifikat
sseapi_ssl_validate_cert Ob das Automation Config-SSL-Zertifikat validiert werden soll (True oder False, Standardwert: True)

In der folgenden Tabelle werden die Einstellungen des Ereigniswarteschlangenmoduls erläutert, die unter der Überschrift sseapi_event_queue angezeigt werden:

Option Beschreibung
name Name der Ereigniswarteschlange (Standardeinstellung sseapi-events, keine Änderung erforderlich)
strategy Zeitpunkt der Aufnahme von Ereignissen in die Warteschlange (always, on_failure oder never, Standardwert: never)
push_interval Häufigkeit, mit der Ereignisse an Automation Config weitergeleitet werden (Sekunden, Standardwert: 5)
batch_limit Maximale Anzahl der Ereignisse, die pro Intervall an Automation Config weitergeleitet werden (Standardwert: 2000)
age_limit Maximales Alter der Ereignisse in der Warteschlange; älteste Ereignisse löschen (Sekunden, Standardwert: 86400)
size_limit Maximale Warteschlangengröße; älteste Ereignisse löschen (Ereignisse, Standardwert: 35000000)
vacuum_interval Häufigkeit, mit der die Warteschlangendatenbank bereinigt wird (Sekunden, Standardwert: 86400)
vacuum_limit Maximale Warteschlangengröße bei Bereinigung der Warteschlangendatenbank (Ereignisse, Standardwert: 350000)

In der folgenden Tabelle werden die Einstellungen des RPC-Warteschlangenmoduls erläutert, die unter der Überschrift sseapi_rpc_queue angezeigt werden:

Option Beschreibung
name Name der Ereigniswarteschlange (Standardeinstellung sseapi-rpc, keine Änderung erforderlich)
strategy Zeitpunkt der Aufnahme von Ereignissen in die Warteschlange (always, on_failure oder never, Standardwert: never)
push_interval Häufigkeit, mit der Aufrufe an Automation Config gesendet werden (Sekunden, Standardwert: 5)
batch_limit Maximale Anzahl der Aufrufe, die pro Intervall an Automation Config weitergeleitet werden (Standardwert: 500)
age_limit Maximales Alter der Aufrufe in der Warteschlange; älteste Einträge löschen (Sekunden, Standardwert: 3600)
size_limit Maximale Warteschlangengröße; älteste Einträge löschen (Ereignisse, Standardwert: 360000)
vacuum_interval Häufigkeit, mit der die Warteschlangendatenbank bereinigt wird (Sekunden, Standardwert: 86400)
vacuum_limit Maximale Warteschlangengröße bei Bereinigung der Warteschlangendatenbank (Einträge, Standardwert: 100000)
In der folgenden Tabelle werden die Einstellungen der Engine für den Zielabgleich erläutert, die unter der Überschrift sseapi_tgt_match angezeigt werden:
Option Beschreibung
poll_interval Häufigkeit (in Sekunden), mit der die Engine aktualisierte Zielgruppeninformationen von RaaS anfordern soll (Standard: 60)
workers Anzahl der Worker-Prozesse, die erstellt werden sollen, um Berechnungen für den Zielgruppenabgleich durchführen zu können. Der Standardwert (0) erstellt einen Prozess pro CPU-Kern bis zu einem Grenzwert von 8.
nice Der nice-Wert für die Priorität der Worker für den Zielgruppenabgleich. Die Standardeinstellung (19) gibt den Workern die niedrigste Planungspriorität, um Störungen mit anderen Prozessen zu verhindern, die auf dem Salt-Master ausgeführt werden.

In der folgenden Tabelle werden die Pfadeinstellungen erläutert: Seien Sie vorsichtig, wenn Sie diese Einstellungen nach der ersten Erstellung der Konfiguration ändern. Module werden aus dem Installationsvorgang in diese Verzeichnisse kopiert. Das Hinzufügen zusätzlicher Pfade hat jedoch keine negativen Auswirkungen.

Option Beschreibung
beacons_dirs beacons – Pfad(e) externer Module
engines_dirs engines – Pfad(e) externer Module
fileserver_dirs fileserver – Pfad(e) externer Module
pillar_dirs pillar – Pfad(e) externer Module
returner_dirs returner – Pfad(e) externer Module
roster_dirs roster – Pfad(e) externer Module
runner_dirs runner – Pfad(e) externer Module
module_dirs Salt – Pfad(e) externer Module
proxy_dirs proxy – Pfad(e) externer Module
metaproxy_dirs metaproxy – Pfad(e) externer Module
states_dirs states – Pfad(e) externer Module

Nächste Schritte

Nach dem Installieren und Konfigurieren des Master-Plug-Ins müssen Sie zusätzliche Schritte nach der Installation durchführen. Der nächste Schritt besteht in der Konfiguration des RaaS-Knotens. Weitere Informationen zum Fortsetzen des Verfahrens nach der Installation finden Sie unter Überprüfen der RaaS-Konfigurationsdatei.