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 SaltStack 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 SaltStack 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.
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 SaltStack Config auf allen Salt-Mastern installieren. Das Master-Plug-In ist nicht auf Salt-Mastern erforderlich, die nicht mit SaltStack 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 SaltStack 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 SaltStack 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)
Installieren des Master-Plug-Ins mithilfe des Arbeitsbereichs „Master-Plug-Ins“
Sie können die neueste Master-Plug-In-Version von der SaltStack Config-Benutzeroberfläche herunterladen und installieren, indem Sie zu 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:
- Melden Sie sich bei Ihrem Salt-Master an.
- 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
. - Installieren Sie das Master-Plug-In, indem Sie das aktualisierte Python-Wheel manuell installieren. Verwenden Sie die folgenden Beispielbefehle, ersetzen Sie dabei den genauen Namen der Wheel-Datei:
RHEL/CentOS
sudo pip3 install SSEAPE-file-name.whl --prefix /usr
Ubuntu
sudo pip3 install SSEAPE-file-name.whl
Hinweis: Einige Benutzer müssen möglicherweise die Syntax für ihre Betriebssysteme inpip3.6
oderpip36
ändern.
Konfigurieren des Master-Plug-Ins
So konfigurieren Sie den Salt-Master nach dem Installieren des Master-Plug-Ins:
- 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. - 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
Wenn die Ausführung dieses Befehls einen Fehler verursacht, kann die Ursache dafür das von Ihnen verwendete Verfahren bei der anfänglichen Installation von Salt sein. Wenn Sie Salt über das SaltStack Config-Installationsprogramm installiert haben, enthält Ihre Installation wahrscheinlich ein Offline-Paket mit dem Namen „Salt Crystal“, das spezielle Upgrade-Anweisungen erfordert. Weitere Informationen finden Sie auf der Seite Fehlerbehebung.
- Bearbeiten Sie die generierte
raas.conf
-Datei und aktualisieren Sie die Werte wie folgt, um das von API (RaaS) verwendete Zertifikat zu validieren und die IP-Adresse festzulegen.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 diesseapi_ssl_ca
-,sseapi_ssl_cert
- undsseapi_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
oderhttps://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 SaltStack 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
Legt fest, wie lange bestimmte Daten lokal auf jedem Salt-Master zwischengespeichert werden. Der Standardwert lautet 300 Sekunden (5 Minuten). - 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. - OPTIONAL: Aktualisieren leistungsbezogener Einstellungen. In großen oder ausgelasteten Umgebungen können Sie die Leistung der Kommunikation zwischen dem Salt-Master und SaltStack Config durch Anpassung der folgenden Einstellungen verbessern.
- Ereigniswarteschlangen aktivieren (verfügbar in Salt 2019.2.2 und höher). Ereignisse können auf dem Salt-Master in die Warteschlange gestellt und mithilfe einer einzelnen Transaktion für mehrere Ereignisse stapelweise an den Ereignis-Returner gesendet werden. Dieser Warteschlangenmechanismus ist standardmäßig deaktiviert. Zum Aktivieren von Ereigniswarteschlangen legen Sie Folgendes in der Konfigurationsdatei des Salt Master-Plug-Ins fest:
event_return_queue:2500 event_return_queue_max_seconds:5
Die vorgeschlagene maximale Größe der Ereigniswarteschlange beträgt wie dargestellt 2500. Eine volle Warteschlange wird geleert, indem Ereignisse an den Ereignis-Returner gesendet werden. Ein niedrigerer Wert ist für kleinere oder weniger ausgelastete Umgebungen möglicherweise besser geeignet.
In bestimmten Fällen ist der Salt-Ereignisbus unter Umständen nicht so stark ausgelastet, dass die Warteschlange regelmäßig ihre maximale Größe erreicht. Durch Festlegen von
event_return_queue_max_seconds
wird die Warteschlange geleert, wenn das älteste Ereignis in der Warteschlange älter als der konfigurierte Wert ist. Dabei spielt es keine Rolle, wie viele Ereignisse sich in der Warteschlange befinden. - Aktivieren und konfigurieren Sie die Module
eventqueue
undrpcqueue
:Diese Module lagern bestimmte Kommunikationen mit SaltStack Config aus leistungskritischen Codepfaden in dedizierte Prozesse aus. Während die Module auf die Kommunikation mit SaltStack Config warten, werden Nutzlasten im lokalen Dateisystem des Salt-Masters gespeichert, damit die Daten bei Neustarts des Salt-Masters beibehalten werden können.
Heben Sie zum Aktivieren der Module die Auskommentierung der folgenden Einstellungen in der Konfigurationsdatei des Salt-Master-Plug-Ins (
raas.conf
) auf:engines: - sseapi: {} - eventqueue: {} - rpcqueue: {} - jobcompletion: {} - keyauth: {}
Heben Sie zum Konfigurieren des Moduls
eventqueue
die Auskommentierung der folgenden Einstellungen auf und aktualisieren Sie sie.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 forward: []
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.
Heben Sie zum Konfigurieren des Moduls
rpcqueue
die Auskommentierung der folgenden Einstellungen auf und aktualisieren Sie sie.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
- Lastzwischenspeicherung aktivieren:
sseapi_local_cache: load:3600
Hinweis: Wenn das Modulrpcqueue
aktiviert ist, muss auch die Lastzwischenspeicherung aktiviert sein, damit der Salt-Master Aufträge ordnungsgemäß verarbeiten kann. - 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 auf0
festlegen, wird diese Funktion deaktiviert:sseapi_command_age_limit:0
Hinweis:Diese Einstellung ist nützlich während Upgrades, um zu verhindern, dass alte in der Datenbank gespeicherte Befehle unerwartet ausgeführt werden.
Zusammen erhöhen Ereigniswarteschlangen in Salt und die Warteschlangenmodule, die Lastzwischenspeicherung, die Grenzwerte für die Nutzlastgröße der Körner und die Altersgrenze für Befehle im Salt-Master-Plug-In den Durchsatz und reduzieren die Latenz der Kommunikation zwischen dem Salt-Master und SaltStack Config in leistungsabhängigen Codepfaden.
- Ereigniswarteschlangen aktivieren (verfügbar in Salt 2019.2.2 und höher). Ereignisse können auf dem Salt-Master in die Warteschlange gestellt und mithilfe einer einzelnen Transaktion für mehrere Ereignisse stapelweise an den Ereignis-Returner gesendet werden. Dieser Warteschlangenmechanismus ist standardmäßig deaktiviert. Zum Aktivieren von Ereigniswarteschlangen legen Sie Folgendes in der Konfigurationsdatei des Salt Master-Plug-Ins fest:
- Starten Sie den Masterdienst neu.
sudo systemctl restart salt-master
- 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.
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 SaltStack Config-Masters |
event_return |
Salt-Ereignis-Returner, sseapi wird zur Verwendung des SaltStack 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 SaltStack 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 SaltStack Config |
sseapi_key_rotation |
Rotationsintervall des SaltStack Config-Authentifizierungsschlüssels des Salt-Masters (Sekunden, Standardwert: 86400) |
sseapi_cache_pillar |
Ob Pfeilerdaten innerhalb von SaltStack 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 SaltStack 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 SaltStack 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 SaltStack Config weitergeleitet werden (Sekunden, Standardwert: 5) |
batch_limit |
Maximale Anzahl der Ereignisse, die pro Intervall an SaltStack 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) |
forward |
Zusätzliche Salt-Returner, an die Ereignisse gesendet werden, wenn die Warteschlange geleert wird (Standardwert: keine) Mit dem Konfigurationselement sseapi_event_queue: # ...other queue settings... forward: - rawfile_json # rawfile_json returner configuration rawfile_json.filename: /var/log/salt/events.json |
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 SaltStack Config gesendet werden (Sekunden, Standardwert: 5) |
batch_limit |
Maximale Anzahl der Aufrufe, die pro Intervall an SaltStack 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 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.