Das Ziel dieses Anwendungsfalls besteht darin, den Salt-Minion-Dienst programmgesteuert auf einem Minion zu installieren, indem eine Windows-VM mit Ihrer SaltStack Config-Umgebung verbunden wird.
Voraussetzungen
Vor dem Bereitstellen eines Minions mithilfe der API in einer Windows-Umgebung müssen Sie über Folgendes verfügen:
- Eine SaltStack Config-Umgebung mit bereitgestelltem RaaS.
- Einen installierter Salt-Master und ein installiertes Salt-Minion.
- Eine bereitgestellte Windows-VM.
Prozedur
- Stellen Sie sicher, dass der Ordner etc/salt/cloud.deploy.d auf dem Salt-Master diese Dateien enthält.
Hinweis: „xxxx“ im Dateinamen, wie z. B. „salt-xxxx-readhat-8-x86_64-amd64.tar.gz“, sollte mit der Version des Salt-Masters übereinstimmen. Überprüfen Sie die Version des Salt-Masters und führen Sie den Befehl
salt-master -V auf dem Salt-Master aus.
- Installieren Sie Bibliotheken mithilfe der Befehle
pip3 install pypsexec smbprotocol
und pip3 install impacket --ignore-installed
.
- Geben Sie den Befehl
salt saltmaster grains.get fqdn
zur Angabe des FQDN des Salt-Masters ein.
- Stellen Sie sicher, dass die Datei C: \Windows\System32\drivers\etc\hosts auf Ihrer Windows-Maschine mit der IP-Adresse und dem Hostnamen/FQDN des Salt-Masters konfiguriert ist.
- Öffnen Sie PowerShell und führen Sie diese Befehle aus, um die erforderlichen Ports zu öffnen:
Port |
Befehle |
445 |
New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445 Set-Item (dir wsman:\localhost\Listener*\Port - Recurse).pspath 445 -Force Restart-Service winrm |
4505-4506 |
netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506 |
- Stellen Sie sicher, dass der FQDN für den Salt-Master konfiguriert ist, indem Sie den Befehl ping [FQDN] ausführen.
- Geben Sie diesen API-Aufruf mit den korrekten Anmeldedaten für Ihre Umgebung ein:
from sseapiclient import APIClient
client = APIClient('https://<master-ip>', '<ssc-username>', '<sscpassword>', ssl_validate_cert=False)
client.api.minions.deploy_minion(
master_id = '<master-id>',
host_name_ip = '<prospective minion’s ip>',
os = ‘<prospective minion’s os>’,
minion_id = '<desired-minion-name-for-prospective-minion>',
username = '<ssh-username-for-prospective-minion>',
password = '<ssh-password-for-prospective-minion>',
)
Die Funktion „deploy.minion“ wird in Ihrer SSC-Umgebung ausgeführt. Sie können dies auf der Registerkarte „Aktivität“ der SSC-Benutzeroberfläche oder durch Ausführen des Befehls
python3 gefolgt von
client.api.minions.get_minio_deployments() überprüfen.
Ergebnisse
Der Minion wurde erfolgreich über Ihre Windows-Umgebung und Ihren API-Aufruf bereitgestellt und konfiguriert.
Nächste Maßnahme
Stellen Sie sicher, dass das Minion erfolgreich bereitgestellt wurde, indem Sie einen Befehl vom Typ
test.ping für das Minion im Fenster „Befehlsausführung“ oder die Befehle
\* test.ping und
\* test.versions im Salt-Master-Befehlsfenster ausführen.