Bei der Installation von SaltStack Config führen Sie einen im SaltStack Config-Installationsprogramm bereitgestellten Orchestrierungs-Highstate aus. Der Highstate läuft auf Ihrem Salt-Master und richtet eine Umgebung mit mehreren Knoten ein. Er installiert die Kernarchitektur von SaltStack Config auf den drei anderen Knoten, die PostgreSQL, Redis und den RaaS-Knoten hosten.
Das Endziel der Installation besteht darin, vier Knoten mit jeweils unterschiedlichen Hostfunktionen zu haben. Jeder Knoten ist auch ein Minion des Salt-Masters:
- Ein Salt-Master-Knoten
- Einen PostgreSQL-Datenbankknoten
- Ein Redis-Datenbankknoten
- Ein RaaS-Knoten, auch bekannt als SaltStack Config
Es ist besonders wichtig, alle unter Installieren von Salt auf Ihren Knoten aufgeführten Schritte auszuführen. Insbesondere müssen Sie die Abhängigkeiten installieren, die für das SaltStack Config-Installationsprogramm auf allen vier Knoten bei der Installation benötigt werden. Andernfalls schlägt die Installation auf mehreren Knoten fehl.
Die erforderlichen Abhängigkeiten sind:
- OpenSSL
- Zusätzliche Pakete für Enterprise Linux (EPEL)
- Python-Kryptografie
- Python OpenSSL-Bibliothek
Hochverfügbarkeit
Es ist möglich, mehrere Salt-Master oder mehrere RaaS-Knoten zu erstellen. Es ist auch möglich, den Salt-Master-Dienst auf einem Knoten auszuführen und zwei oder mehr der anderen Dienste auf einem separaten Knoten zu kombinieren. Die Schritte zum Konfigurieren dieser Art von Systemarchitektur werden in diesem Handbuch nicht vollständig erläutert.
Hochverfügbarkeits- oder benutzerdefinierte Architekturanforderungen erfordern möglicherweise zusätzliche Beratungsdienste. Bevor Sie jedoch mehrere Knoten desselben Typs einrichten, beginnen Sie in der Regel zuerst mit dem Installationsszenario mit mehreren Knoten und konfigurieren dann später eine zusätzliche Architektur.
Weitere Informationen zur Hochverfügbarkeit finden Sie unter Erforderliche SaltStack Config-Abhängigkeiten.
Aufzeichnen von Schlüsseldaten für die vier Knoten
Dokumentieren Sie vor der Standardinstallation die Schlüsseldaten zu jedem der vier an der Installation beteiligten Knoten. Sie geben diese Daten während des Installationsverfahrens an mehreren Stellen ein.
Zeichnen Sie die folgenden Schlüsseldaten zu jedem der vier an der Installation beteiligten Knoten auf:
- Die IP-Adressen oder DNS-Namen
- Die Minion-IDs
Stellen Sie sicher, dass Sie eindeutig angeben, welche IP-Adresse und Minion-ID zu welchem Host gehört (Salt-Master-Knoten, RaaS-Knoten, PostgreSQL-Datenbankknoten, Redis-Datenbankknoten).
Stellen Sie als Best Practice sicher, dass Ihre IP-Adressen oder DNS-Namen korrekt sind, da falsche IP-Adressen oder DNS-Namen zu einem mehrere Knoten betreffenden Installationsfehler führen können.
Bewahren Sie diese Daten leicht zugänglich auf, um später darauf zurückgreifen zu können. Beim Konfigurieren der Orchestrierung müssen Sie diese Daten in mehrere Einstellungen und Variablen in den Konfigurationsdateien eingeben. Aus diesem Grund ist es hilfreich, diese Aufzeichnung während der Installation stets parat zu haben.
Wenn Sie sich in einer virtualisierten Umgebung befinden, achten Sie darauf, die interne Adresse und nicht die öffentliche Adresse anzugeben.
Die Redis- und PostgreSQL-Hosts benötigen statische IP-Adressen oder DNS-Namen, auf die die Konfigurationsdateien verweisen. Je nachdem, wie der RaaS-Knoten bereitgestellt wird, benötigt er möglicherweise auch eine statische IP-Adresse oder einen DNS-Namen. Wenn Sie sich in Konfigurationen auf dynamische IP-Adressen verlassen, kann sich dadurch Ihre Umgebung ändern und beeinträchtigt werden.
Festlegen einer benutzerdefinierten Minion-ID (optional)Eine Minion-ID ist ein eindeutiger Name, der jedem Minion zugewiesen wird, der von einem Salt-Master verwaltet wird. Standardmäßig identifiziert sich der Minion gegenüber dem Salt-Master durch den Hostnamen des Systems. Sie können jedoch benutzerdefinierte IDs zuweisen, die ihre Funktion oder ihren Standort innerhalb Ihres Netzwerks beschreiben.
Wenn Sie Ihre Minion-IDs anpassen möchten, versuchen Sie, die ID kurz, aber für ihre Rolle aussagekräftig zu halten. Sie können z. B. apache-server-1
für die Benennung eines Ihrer Webserver verwenden, oder Sie können datacenter-3-rack-2
gemäß dem Speicherort in einem Datencenter verwenden. Ziel ist es, die Namen so zu erstellen, dass sie für die zukünftige Bezugnahme aussagekräftig und hilfreich sind.
So deklarieren Sie eine Minion-ID:
- Navigieren Sie im Terminal des Minion zu dem Verzeichnis, in dem sich die Datei
id.conf
befindet. Standardmäßig ist der Verzeichnisspeicherortetc/salt/minion.d/id.conf
. - Öffnen Sie die Datei
id.conf
in einem Editor. Ändern Sie dieid
-Einstellung in Ihre bevorzugte Minion-ID. Beispiel:id: postgres-database-1
- Nach dem Ändern einer Minion-ID müssen die Schlüssel des Minions vom Salt-Master akzeptiert (oder erneut akzeptiert) werden. Spezielle Anweisungen zum Einrichten der Schlüssel finden Sie in Annehmen der Minion-Schlüssel auf dem/den Master(n).
Kopieren und Bearbeiten der wichtigsten Statusdateien
Kopieren Sie während dieser Installationsaufgabe die Orchestrierungsdateien, die dem Salt-Master-Knoten mit dem SaltStack Config-Installationsprogramm bereitgestellt wurden. Anschließend bearbeiten Sie die Dateien, um auf die drei Knoten für RaaS, die Redis-Datenbank und die PostgreSQL-Datenbank zu verweisen.
So kopieren und bearbeiten Sie die Konfigurationsdateien für die Orchestrierung:
- Navigieren Sie auf dem Salt-Master zum Verzeichnis
sse-installer
. - Kopieren Sie die Pfeiler- und die Statusdateien aus dem
sse_installer
-Verzeichnis mit den folgenden Befehlen in die Minion-Ordnerpillar_roots
undfile_roots
:sudo mkdir /srv/salt sudo cp -r salt/sse /srv/salt/ sudo mkdir /srv/pillar sudo cp -r pillar/sse /srv/pillar/ sudo cp -r pillar/top.sls /srv/pillar/ sudo cp -r salt/top.sls /srv/salt/
Wichtig:Diese Anweisungen gehen von einigen Annahmen aus, die für Ihre Verzeichnisstruktur möglicherweise nicht zutreffen, insbesondere, wenn Sie über eine vorhandene Salt-Installation verfügen. Bei den Anweisungen wird davon ausgegangen:
- Dass Ihr Salt-Master die Standardverzeichnisstruktur nutzt. Wenn Ihre Verzeichnisstruktur geändert wurde, müssen Sie diese Anweisungen möglicherweise für Ihre benutzerdefinierte Verzeichnisstruktur ändern.
- Dass Sie noch nicht über einen Ordner mit dem Namen
sse
unter dem Pfeiler- oder Konfigurationsstatus-Stammordner verfügen. Wenn dieser Ordner vorhanden ist, müssen Sie die Ordner möglicherweise manuell zusammenführen. - Dass Sie nicht bereits über eine Datei mit dem Namen
top.sls
in Ihrem Pfeiler- oder Salt-Verzeichnis verfügen. Wenn diese Datei vorhanden ist, müssen Sie sie möglicherweise manuell mit Ihrer vorhandenen Datei zusammenführen.
- Im Verzeichnis
/srv/pillar/
befindet sich jetzt eine Datei mit dem Namentop.sls
, die Sie im vorherigen Schritt aus den Installationsdateien kopiert haben. Öffnen Sie diese Datei in einem Editor. - Bearbeiten Sie diese Datei, um die Liste der Minion-IDs (nicht die IP-Adressen oder DNS-Namen) für Ihren PostgreSQL-, Redis-, RaaS- und Salt-Master zu definieren. Verwenden Sie die IDs, die Sie zuvor aufgezeichnet haben.
Beispiel:
{# Pillar Top File #} {# Define SSE Servers #} {% load_yaml as sse_servers %} - postgres-database-1 - redis-database-1 - saltstack-enterprise-api-server-1 - saltmaster-1 {% endload %} base: {# Assign Pillar Data to SSE Servers #} {% for server in sse_servers %} '{{ server }}': - sse {% endfor %}
- Im Verzeichnis
/srv/salt/
befindet sich jetzt eine Datei mit dem Namentop.sls
, die Sie in Schritt 2 kopiert haben. Öffnen Sie diese Datei in einem Editor und stellen Sie sicher, dass sie den folgenden Bedingungen entspricht:base: {# Target SSE Servers, according to Pillar data #} # SSE PostgreSQL Server 'I@sse_pg_server:{{ grains.id }}': - sse.eapi_database # SSE Redis Server 'I@sse_redis_server:{{ grains.id }}': - sse.eapi_cache # SSE eAPI Servers 'I@sse_eapi_servers:{{ grains.id }}': - sse.eapi_service # SSE Salt Masters 'I@sse_salt_masters:{{ grains.id }}': - sse.eapi_plugin
Anwendung der Highstates auf die Knoten
- Synchronisieren Sie auf dem Salt-Master Ihre Grain-Eigenschaften, um zu bestätigen, dass der Salt-Master über die für jeden Minion erforderlichen Grain-Daten verfügt. Mit diesem Schritt wird sichergestellt, dass die Pfeilerdaten ordnungsgemäß für die SaltStack Config-Funktionalität generiert werden.
In dem Befehl, mit dem die Körner synchronisiert werden, können Sie alle Minions als Ziel verwenden, oder Sie können eine Liste der spezifischen Minion-IDs für Ihre Knoten (einschließlich des Salt-Masters selbst) in die Klammern einfügen. Beispiel:
Alle Minions als Ziel verwenden
sudo salt \* saltutil.refresh_grains
Eine Liste von Minions als Ziel verwenden
sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_grains
- Aktualisieren Sie und bestätigen Sie, dass jeder der Minions die in der Datei
sse_settings.yaml
definierten Pfeilerdaten erhalten hat und dass sie erwartungsgemäß angezeigt werden.In dem Befehl, mit dem die Pfeilerdaten aktualisiert werden, können Sie alle Minions als Ziel verwenden, oder Sie können eine Liste der spezifischen Minion-IDs für Ihre Knoten (einschließlich des Salt-Masters selbst) in die Klammern einfügen. Beispiel:
Alle Minions als Ziel verwenden
sudo salt \* saltutil.refresh_pillar
Eine Liste von Minions als Ziel verwenden
sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_pillar
- Vergewissern Sie sich, dass die Rücksendungsdaten für Ihren Pfeiler korrekt sind:
sudo salt \* pillar.items
Stellen Sie sicher, dass die Pfeilerdaten für SaltStack Config sehen.
Hinweis:Sie können auch die Pfeilerdaten eines bestimmten Minions als Ziel verwenden, um sicherzustellen, dass die Pfeilerdaten aktualisiert wurden.
- Führen Sie den Befehl aus, der den Orchestrierungs-Highstate auf den PostgreSQL-Server anwendet. Verwenden Sie die Minion-ID, die Sie zuvor für den PostgreSQL-Server aufgezeichnet haben.
Beispiel:
sudo salt postgres-database-1 state.highstate
- Wiederholen Sie den vorherigen Schritt für jeden der folgenden Server und ersetzen Sie die Minion-ID für jeden Server:
- Den Redis-Knoten
- Den RaaS-Knoten
- Den Salt-Master-Knoten
Hinweis:Während der anfänglichen Anwendung des Highstate auf den Salt-Master wird möglicherweise die folgende Fehlermeldung angezeigt:
Authenticationerroroccurred
. Dieser Fehler wird angezeigt, weil sich der Salt-Master noch nicht am RaaS-Knoten authentifiziert hat. Durch den Installationsstatus des Master-Plug-In wird jedoch der Salt-Master-Dienst neu gestartet, und das Problem wird automatisch behoben.
Falls bei der Ausführung der Highstates weitere Fehler auftreten, erhalten Sie unter Fehlerbehebungweitere Informationen.