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
Vorsicht:

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.

Hinweis:

Wenn Sie sich in einer virtualisierten Umgebung befinden, achten Sie darauf, die interne Adresse und nicht die öffentliche Adresse anzugeben.

Statische im Vergleich zu dynamischen IP-Adressen

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:

  1. Navigieren Sie im Terminal des Minion zu dem Verzeichnis, in dem sich die Datei id.conf befindet. Standardmäßig ist der Verzeichnisspeicherort etc/salt/minion.d/id.conf.
  2. Öffnen Sie die Datei id.conf in einem Editor. Ändern Sie die id-Einstellung in Ihre bevorzugte Minion-ID. Beispiel:
    id: postgres-database-1
  3. 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:

  1. Navigieren Sie auf dem Salt-Master zum Verzeichnis sse-installer.
  2. Kopieren Sie die Pfeiler- und die Statusdateien aus dem sse_installer-Verzeichnis mit den folgenden Befehlen in die Minion-Ordner pillar_roots und file_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.
  3. Im Verzeichnis /srv/pillar/ befindet sich jetzt eine Datei mit dem Namen top.sls, die Sie im vorherigen Schritt aus den Installationsdateien kopiert haben. Öffnen Sie diese Datei in einem Editor.
  4. 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 %}
  5. Im Verzeichnis /srv/salt/ befindet sich jetzt eine Datei mit dem Namen top.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

  1. 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
  2. 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
  3. 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.

  4. 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
  5. 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.