Nachdem Sie den Automation Config-Dienst installiert und integriert haben, müssen Sie auch den Salt-Minion-Dienst auf allen Knoten installieren, ausführen und registrieren, die Sie mithilfe von Automation Config verwalten möchten. Sie können den Salt-Minion-Dienst entweder unter Verwendung von VMware Aria Automation-Cloud-Vorlagen oder durch die Installation des Dienstes über Secure Shell (SSH) für Ihre Knoten bereitstellen.

Salt und seine Beziehung zu Automation Config

Automation Config wird auf Salt ausgeführt, einem Python-basierten Open-Source-Remoteausführungs-Framework, das für Folgendes verwendet wird:

  • Konfigurationsverwaltung
  • Automatisierung
  • Bereitstellung
  • Orchestrierung

Salt ist die Technologie, die der Kernfunktionalität von Automation Config zugrunde liegt. Automation Config verbessert und erweitert Salt und bietet zusätzliche Funktionen und Features, welche die Benutzerfreundlichkeit verbessern.

Salt verwendet das Controller-Client-Modell, bei dem ein Controller Befehle an einen Client ausgibt und der Client den Befehl ausführt. Im Salt-Ökosystem ist der Controller ein Server, auf dem der Salt-Master-Dienst ausgeführt wird. Er gibt Befehle an ein oder mehrere Salt-Minions aus, bei denen es sich um Knoten handelt, die den Salt-Minion-Dienst ausführen und die bei diesem speziellen Master registriert sind.

Salt kann auch als Herausgeber-/Abonnentenmodell beschrieben werden. Der Master veröffentlicht Aufträge, die ausgeführt werden müssen, und Minions sind die Abonnenten dieser Aufträge. Wenn für einen Minion ein bestimmter Auftrag gilt, führt dieser den Auftrag aus. Wenn ein Minion die Ausführung eines Auftrags abgeschlossen hat, sendet er Auftragsrücksendungsdaten zurück an den Master.

Minions sind Knoten, die den Salt-Minion-Dienst ausführen. Der Dienst hört Befehle aus einem Salt-Master ab und führt die angeforderten Aufgaben durch. Sie können Minions über VMware Aria Automation-Cloud-Vorlagen bereitstellen.

Bevor Sie mit der Verwendung von Automation Config zur Konfigurationsverwaltung beginnen können, müssen Sie zuerst den Salt-Minion-Dienst auf allen Knoten installieren, die Sie verwalten möchten. Sie müssen die Minions auch registrieren, indem Sie deren Schlüssel an Automation Config senden bzw. von dort annehmen.

Bevor Sie beginnen

  • Installieren und konfigurieren Sie Automation Config und integrieren Sie sie es in VMware Aria Automation.
  • Knoten, die mithilfe von Automation Config verwaltet werden, müssen den Salt-Master erreichen können und sich in demselben Netzwerk wie der Automation Config-Integrationspunkt und der Salt-Master befinden.
  • vSphere-Maschinen, die in einem privaten Netzwerk bereitgestellt werden, müssen eine Verbindung mit der Automation Config-Integration und dem Salt-Master herstellen können.

Installieren des Salt-Minion-Dienstes über SSH

Der Vorgang zum Installieren des Salt-Minion-Dienstes mithilfe von SSH ist abhängig von dem Betriebssystem, das auf diesen Knoten ausgeführt wird.

Nach der Installation des Salt-Minion-Dienstes:
  1. Konfigurieren Sie jeden Minion für die Kommunikation mit dem Master durch die entsprechende Erstellung einer master.conf-Datei im Verzeichnis /etc/salt/minion.d. Geben Sie in dieser Datei die IP-Adresse des Masters an. Beispiel: master: 192.0.2.1
  2. Starten Sie den Minion-Dienst:

    sudo systemctl enable salt-minion

    sudo systemctl start salt-minion

  3. Wiederholen Sie die vorherigen Schritte für alle verbleibenden Knoten.

Nachdem Sie diese Minion-Dateien so konfiguriert haben, dass sie auf den Salt-Master verweisen, nehmen Sie die Minion-Schlüssel im Automation Config-Dienst in der Arbeitsumgebung „Minion-Schlüssel“ an.

Installieren des Salt-Minion-Dienstes mithilfe von VMware Aria Automation-Cloud-Vorlagen

Um den Salt-Minion-Dienst mithilfe von Cloud-Vorlagen bereitzustellen, müssen Sie auf cloud-init (Linux) oder Cloudbase-init (Windows) zugreifen können und damit vertraut sein. Zum Hinzufügen von Salt-Minions zum Salt-Master, der für die Automation Config-Integration konfiguriert ist, muss die virtuelle Maschine in der Cloud-Vorlage cloud-init (Linux) oder Cloudbase-init (Windows) unterstützen.

In den folgenden Abschnitten wird die Bereitstellung des Salt-Minion-Dienstes mithilfe von Cloud-Vorlagen erläutert.

Hinzufügen von Minions zum für VMware Aria Automation konfigurierten Salt-Master

Nach der Installation von Automation Config wird eine Salt-Master-IP-Adresse angegeben. Diese Master-IP-Adresse wird als masterAddress-Eigenschaft verwendet, wenn Sie Minions über eine VMware Aria Automation-Cloud-Vorlage bereitstellen.

Sie installieren und stellen Minions mithilfe von cloud-init- oder Cloudbase-init-Skripts in einer VMware Aria Automation-Cloud-Vorlage oder -Bereitstellung bereit. Sie können auch eine Image-Zuordnung verwenden, die ein Cloud-Konfigurationsskript darstellt, das eines dieser Formate verwendet. Zum Hinzufügen von Salt-Minions zum Salt-Master, der mit einer VMware Aria Automation Automation Config-Integration verknüpft ist, muss die Zielmaschine cloud-init (Linux) oder Cloudbase-init (Windows) unterstützen. Cloud-Konfigurationsskripts in VMware Aria Automation unterstützen beide Formate.

Sie konfigurieren eine Maschinenressource in der Cloud-Vorlage mit dem Wert minionId und cloudConfig und verweisen auf die Eigenschaftsgruppe SaltStackConfiguration. Die Eigenschaftsgruppe SaltStackConfiguration wird während der Installation und Konfiguration des Automation Config-Diensts in VMware Aria Suite Lifecycle erstellt. Sie enthält die Eigenschaften masterAddress und masterFingerprint.

Der Wert minionId muss dem für die /salt/minion_id der Maschine im Abschnitt cloudConfig des Cloud-Vorlagencodes angegebenen Wert entsprechen.

Im Folgenden werden Beispiele für Windows- und Linux-basierten VMware Aria Automation-Cloud-Vorlagencode angezeigt. Beachten Sie, dass die Cloud-Konfigurationsskripts mit einer der folgenden Methoden angegeben werden können:
  • VMware Aria Automation-Image, das aus dem Cloud-Vorlagencode aufgerufen wird
  • Cloud-Konfigurationsskript, das aus dem Cloud-Vorlagencode aufgerufen wird
  • Inhalt des Cloud-Konfigurationsskripts, der direkt dem Cloud-Vorlagencode hinzugefügt wird

Hinweis: Wenn Sie eine Cloud-Vorlage bereitstellen, die Salt-Minions enthält, und die Bereitstellung in Automation Assembler nicht sichtbar ist, können Sie die Bereitstellung mithilfe des Automation Service Broker-Diensts anzeigen.

Beispiel – Linux-basierte Bereitstellung und cloud-init

Eine Beispielkonfiguration einer Cloud-Vorlage zum Bereitstellen von Minions für eine Linux-basierte Maschine, die cloud-init unterstützt, wird im Folgenden angezeigt:
resources:
  Salt-Minion:
    type: Cloud.Machine
    properties:
      image: Ubuntu-18
      flavor: medium
      constraints:
        - tag: 'env:vsphere'
      cloudConfig: |
        #cloud-config
        hostname: ${input.saltminionhostname}
        users:
          - name: ${input.user}
            sudo: ['ALL=(ALL) NOPASSWD:ALL']
            groups: sudo
            shell: /bin/bash
        runcmd:
          - PASS=${input.password}
          - USER=${input.user}
          - echo $USER:$PASS | /usr/sbin/chpasswd
          - sed -i "s/PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
          - service ssh reload
          - curl -L https://bootstrap.saltstack.com -o install_salt.sh
          - sudo sh install_salt.sh -A ${propgroup.SaltStackConfiguration.masterAddress}

Beispiel – Windows-basierte Bereitstellung und Cloudbase-init

Eine Beispielkonfiguration einer Cloud-Vorlage zum Bereitstellen von Minions für eine Windows-basierte Maschine, die Cloudbase-init unterstützt, wird im Folgenden angezeigt:
formatVersion: 1
inputs: {}
resources:
  WindowsVM-Minion:
    type: Cloud.vSphere.Machine
    properties:
      image: win2016
      flavor: medium
      customizationSpec: Windows
      minionId: '${resource.WindowsVM-Minion.resourceName}'
      networks:
        - network: '${resource.wpnet.id}'
          name: '${wpnet.name}'
          assignPublicIpAddress: true
      cloudConfig: |
        #ps1_sysnative
        [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -OutFile C:\Salt-Minion-3002.2-Py3-AMD64-Setup.exe -Uri https://repo.saltstack.com/windows/Salt-Minion-3002.2-Py3-AMD64-Setup.exe
        Start-Process -Wait -FilePath "C:\Salt-Minion-3002.2-Py3-AMD64-Setup.exe" -ArgumentList "/S" -PassThru
        ((Get-Content -path C:\salt\conf\minion -Raw) -replace "#master: salt", "master: ${propgroup.SaltStackConfiguration.masterAddress}") | Set-Content -Path C:\salt\conf\minion
        ((Get-Content -path C:\salt\conf\minion -Raw) -replace "#master_finger: ''", "master_finger: '${propgroup.SaltStackConfiguration.masterFingerPrint}'") | Set-Content -Path C:\salt\conf\minion
        Set-Content -Path C:\salt\conf\minion_id -Value '${resource.WindowsVM-Minion.resourceName}'
        C:\salt\salt-call.bat service.restart salt-minion
  wpnet:
    type: Cloud.Network
    properties:
      name: wpnet
      networkType: existing

Vorgehensweise zum Konfigurieren von PowerShell-Befehlen

Sie konfigurieren PowerShell-Befehle im Abschnitt cloudConfig Ihrer Cloud-Vorlagen.

Bevor Sie PowerShell-Befehle aktivieren, laden Sie das Salt-Minion-Paket von der Salt-Repository-Website herunter. Führen Sie dann die folgenden Schritte aus:
  1. Installieren Sie den Salt-Minion-Dienst auf der Windows-VM.
  2. Aktualisieren Sie den Wert des Salt-Master-Hostnamens in der Minion-Konfiguration.
  3. Aktualisieren Sie den Wert des Salt-Master-Fingerabdrucks in der Minion-Konfiguration.
  4. Legen Sie die minion_id auf den VM-Ressourcennamen fest, der zum Akzeptieren des Minions im Salt-Master verwendet wird.
  5. Starten Sie den Minion neu.

Weitere Informationen zum Bereitstellen von Salt-Minions

Alternative Methoden zur Verwendung integrierter Automation Config zum Bereitstellen von Salt-Minions über eine VMware Aria Automation-Cloud-Vorlage finden Sie unter Assembler and ABX Secrets (and how to use them for installing Automation Config Minion Agents).

Wenn Sie mit Config, nicht jedoch mit Aria Automation vertraut sind, finden Sie verwandte Informationen zum Definieren und Bereitstellen allgemeiner Automation Assembler-Vorlagen unter Entwerfen Ihrer Assembler-Bereitstellungen.