Bei der Installation von Automation Config führen Sie einen im Automation 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 Automation Config auf den drei anderen Knoten, die PostgreSQL, Redis und den RaaS-Knoten hosten.

Achtung: Die Bereitstellung von Automation Config in Containern wird weder unterstützt noch empfohlen.

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 Automation 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 Automation 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 Automation 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 minion.conf befindet. Standardmäßig ist der Verzeichnisspeicherort etc/salt/minion.d.
  2. Öffnen Sie die Datei minion.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 Automation 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 Salt-Master-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
    

Bearbeiten der Pfeilerdatei mit den Automation Config-Einstellungen

Während dieser Installationsaufgabe bearbeiten Sie fünf verschiedene Abschnitte in der Pfeilerzuordnungsdatei mit den Automation Config-Einstellungen, um die für Ihre Umgebung geeigneten Werte bereitzustellen. Diese Einstellungen werden von den Konfigurationsstatusdateien für die Bereitstellung und das Management Ihrer Automation Config-Installation verwendet.

So kopieren und bearbeiten Sie die Automation Config-Einntellungsstatusdatei:

  1. Navigieren Sie auf dem Salt-Master zum Verzeichnis /srv/pillar/sse/.
  2. Öffnen Sie die Datei sse_settings.yaml in einem Editor. Abschnitt 1 dieser Datei enthält vier Variablen, die den vier Knoten entsprechen. Ändern Sie die Werte der vier Variablen in die Minion-IDs (nicht die IP-Adressen oder die DNS-Namen) für die entsprechenden Knoten. Verwenden Sie die Minion-IDs, die Sie zuvor aufgezeichnet haben.

    Beispiel:

    # PostgreSQL Server (Single value)
    pg_server: postgres-database-1
    
    # Redis Server (Single value)
    redis_server: redis-database-1
    
    # SaltStack Enterprise Servers (List one or more)
    eapi_servers:
      - saltstack-enterprise-api-server-1
    
    # Salt Masters (List one or more)
    salt_masters:
      - saltmaster-1
    Hinweis: Die Variablen pg_server und redis_server sind einzelne Variablen, da die meisten Netzwerkkonfigurationen nur eine PostgreSQL- und Redis-Datenbank haben. Im Gegensatz dazu werden die Variablen für die eapi_servers und salt-masters als Liste formatiert, da mehrere RaaS-Knoten und Salt-Master verwendet werden können.
  3. Bearbeiten Sie die Variablen in Abschnitt 2 dieser Datei, um den Endpoint und den Port Ihres PostgreSQL-Knotens festzulegen:
    • pg_endpoint – Ändern Sie den Wert in die IP-Adresse oder den DNS-Namen (nicht die Minion-ID) Ihres PostgreSQL-Servers. Wenn Sie sich in einer virtualisierten Umgebung befinden, achten Sie darauf, die interne Adresse und nicht die öffentliche Adresse anzugeben.
    • pg_port – Der Standard-PostgreSQL-Port wird bereitgestellt, kann aber bei Bedarf außer Kraft gesetzt werden.
    • pg_username und pg_password – Geben Sie die Anmeldedaten für den Benutzer ein, den die API (RaaS) zur Authentifizierung bei PostgreSQL verwendet. Dieser Benutzer wird erstellt, wenn Sie den Highstate für die Konfigurationsorchestrierung ausführen.
    Hinweis: Die Variable wird als pg_endpoint angegeben, da einige Installationen möglicherweise einen separaten PostgreSQL-Server (oder -Cluster) konfiguriert haben, der bei diesem Installationsvorgang nicht verwaltet wird. Schließen Sie die Aktion in diesem Fall aus. Wenden Sie den Highstate später im Verfahren nicht während des Schrittes „Anwendung der Highstates auf die Knoten“ auf den PostgreSQL-Server an.
  4. Wiederholen Sie den vorherigen Schritt, um Abschnitt 3 zur Bearbeitung dieser Datei. Bearbeiten Sie jedoch stattdessen die entsprechenden Variablen, um den Endpoint und den Port Ihres Redis-Knotens festzulegen.
  5. Bearbeiten Sie in Abschnitt 4 dieser Datei die Variablen für den RaaS-Knoten:
    • Wenn es sich um eine Neuinstallation handelt, ändern Sie die Standardwerte für die Variablen eapi_username und eapi_password nicht. Während der Konfigurationsorchestrierung richtet der Installationsvorgang die Datenbank mit diesen Standardanmeldedaten ein. Sie benötigt diese Anmeldedaten, um eine Verbindung über den eAPI-Dienst herzustellen, um Ihre Standardziele und -aufträge in Automation Config einzurichten. Sie ändern das Standardkennwort in einem späteren Schritt nach der Installation.
    • Ändern Sie für die Variable eapi_endpoint den Wert in die IP-Adresse oder den DNS (nicht die Minion-ID) Ihres RaaS-Knotens.
      Hinweis: Die Variable wird als eapi_endpoint angegeben, da einige Installationen mehrere eAPI-Server hinter einem Lastausgleichsdienst hosten.
    • Die Variable eapi_ssl_enabled ist standardmäßig auf True festgelegt. Wenn sie auf True festgelegt ist, ist SSL aktiviert. Es wird nachdrücklich empfohlen diese Option aktiviert zu lassen. Die SSL-Validierung ist seitens des Installationsprogramms nicht erforderlich, sie ist jedoch wahrscheinlich eine Sicherheitsanforderung in Umgebungen, die ihre eigene Zertifizierungsstelle hosten.
    • Die Variable eapi_standalone ist standardmäßig auf False festgelegt. Diese Variable gibt die Richtung zu den Konfigurationsstatus an, wenn Pfeilerdaten in einem Einzelknoten-Installationsszenario verwendet werden. In diesem Szenario wird die gesamte IP-Kommunikation an die Loopback-Adresse geleitet. Im Szenario mit mehreren Installationen sollten Sie dies auf False festgelegt lassen.
    • Die Variable eapi_failover_master ist standardmäßig auf False festgelegt. Diese Variable unterstützt Bereitstellungen, bei denen Salt-Master (und -Minions) im Failover-Modus ausgeführt werden.
    • Die Variable eapi_key definiert den Verschlüsselungsschlüssel, den Automation Config zum Verwalten verschlüsselter Daten in der PostgreSQL-Datenbank verwendet. Dieser Schlüssel sollte für jede Installation eindeutig sein. Ein Standardschlüssel wird bereitgestellt, aber ein benutzerdefinierter Schlüssel kann durch Ausführen des folgenden Befehls in einem separaten Terminal außerhalb des Editors generiert werden:
      openssl rand -hex 32
  6. Bearbeiten Sie in Abschnitt 5 dieser Datei die Variablen, um Ihre eindeutigen Kundenkennungen hinzuzufügen:
    • Die Variable customer_id identifiziert eindeutig eine SaltStack-Bereitstellung. Sie wird zum Suffix des Schemanamens der raas_* -Datenbank (API (RaaS)) in PostgreSQL. Ein Standardschlüssel wird bereitgestellt, aber ein benutzerdefinierter Schlüssel kann durch Ausführen des folgenden Befehls in einem separaten Terminal außerhalb des Editors generiert werden:
      cat /proc/sys/kernel/random/uuid
    • Die Variable cluster_id definiert die ID für eine Gruppe von Salt-Mastern, wenn sie im Modus „Aktiver oder Failover-Multi-Master“ konfiguriert ist. Diese ID verhindert, dass Minions, die mehrere Salt-Mastern unterstehen, mehrmals innerhalb von Automation Config gemeldet werden.

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 Automation 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 Automation 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.