Nachdem Sie den SaltStack 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 SaltStack Config verwalten möchten. Sie können den Salt-Minion-Dienst entweder unter Verwendung von vRealize Automation-Cloud-Vorlagen oder durch die Installation des Dienstes über Secure Shell (SSH) für Ihre Knoten bereitstellen.
Salt und seine Beziehung zu SaltStack Config
SaltStack 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 SaltStack Config zugrunde liegt. SaltStack 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 vRealize Automation-Cloud-Vorlagen bereitstellen.
Bevor Sie mit der Verwendung von SaltStack 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 SaltStack Config senden bzw. von dort annehmen.
Bevor Sie beginnen
- Installieren und konfigurieren Sie SaltStack Config und integrieren Sie sie es in vRealize Automation.
- Knoten, die mithilfe von SaltStack Config verwaltet werden, müssen den Salt-Master erreichen können und sich in demselben Netzwerk wie der SaltStack Config-Integrationspunkt und der Salt-Master befinden.
- vSphere-Maschinen, die in einem privaten Netzwerk bereitgestellt werden, müssen eine Verbindung mit der SaltStack 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.
- Informationen zum Installieren des Salt-Minion-Dienstes unter RedHat Linux oder CentOS finden Sie unter Installieren von Salt (vor der Installation).
- Informationen zu anderen Betriebssystemen finden Sie unter http://repo.saltstack.com/.
- 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
- Starten Sie den Minion-Dienst:
sudo systemctl enable salt-minion
sudo systemctl start salt-minion
- 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 SaltStack Config-Dienst in der Arbeitsumgebung „Minion-Schlüssel“ an.
Installieren des Salt-Minion-Dienstes mithilfe von vRealize 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 SaltStack 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.
Eigenschaftsgruppe „SaltStackConfiguration“
Beim Installieren und Konfigurieren des SaltStack Config-Diensts in vRealize Suite Lifecycle Manager wird eine vRealize Automation-Eigenschaftsgruppe mit dem Namen SaltStackConfiguration erstellt. Sie verwenden die Werte der SaltStackConfiguration-Eigenschaftsgruppe, wenn Sie die SaltStack Config-Integration in einer vRealize Automation-Cloud-Vorlage oder -Bereitstellung konfigurieren.
Sie verwenden die Werte auch in einer cloud-init- oder Cloudbase-init-basierten Konfiguration in einer vRealize Automation-Vorlage (zuvor als Blueprints bezeichnet), um Minions zu installieren. Die beiden Eigenschaften in SaltStackConfiguration lauten masterAddress, die der Einstellung hostname auf dem SaltStack Config-Integrationspunkt entspricht, und masterFingerprint. Unten wird ein Beispiel einer SaltStackConfiguration-Eigenschaftsgruppe angezeigt.
Hinzufügen von Minions zum für vRealize Automation konfigurierten Salt-Master
Nach der Installation von SaltStack Config wird eine Salt-Master-IP-Adresse angegeben. Diese Master-IP-Adresse wird als masterAddress-Eigenschaft verwendet, wenn Sie Minions über eine vRealize Automation-Cloud-Vorlage bereitstellen.
Sie installieren und stellen Minions mithilfe von cloud-init- oder Cloudbase-init-Skripts in einer vRealize 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 vRealize Automation SaltStack Config-Integration verknüpft ist, muss die Zielmaschine cloud-init (Linux) oder Cloudbase-init (Windows) unterstützen. Cloud-Konfigurationsskripts in vRealize 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 SaltStack Config-Diensts in vRealize Suite Lifecycle Manager 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.
- vRealize 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 vRealize Automation Cloud Assembly nicht sichtbar ist, können Sie die Bereitstellung mithilfe des vRealize Automation Service Broker-Diensts anzeigen.
Beispiel – Linux-basierte Bereitstellung und cloud-init
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
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.
- Installieren Sie den Salt-Minion-Dienst auf der Windows-VM.
- Aktualisieren Sie den Wert des Salt-Master-Hostnamens in der Minion-Konfiguration.
- Aktualisieren Sie den Wert des Salt-Master-Fingerabdrucks in der Minion-Konfiguration.
- Legen Sie die
minion_id
auf den VM-Ressourcennamen fest, der zum Akzeptieren des Minions im Salt-Master verwendet wird. - Starten Sie den Minion neu.
Weitere Informationen zum Bereitstellen von Salt-Minions
Alternative Methoden zur Verwendung integrierter SaltStack Config zum Bereitstellen von Salt-Minions über eine vRealize Automation-Cloud-Vorlage finden Sie unter Cloud Assembly and ABX Secrets (and how to use them for installing vRealize SaltStack Minion Agents).
Wenn Sie mit SaltStack, nicht jedoch mit vRealize Automation vertraut sind, finden Sie verwandte Informationen zum Definieren und Bereitstellen allgemeiner vRealize Automation Cloud Assembly-Vorlagen unter Entwerfen Ihrer vRealize Automation Cloud Assembly-Bereitstellungen.