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

  1. 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-redhat-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.
  2. Installieren Sie Bibliotheken mithilfe der Befehle pip3 install pypsexec smbprotocol und pip3 install impacket --ignore-installed.
  3. Um den FQDN des Salt-Masters zu ermitteln, führen Sie den Befehl salt saltmaster grains.get fqdn aus.
  4. 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.
  5. Ö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
  6. Stellen Sie sicher, dass der FQDN für den Salt-Master konfiguriert ist, indem Sie den Befehl ping [FQDN] ausführen.
  7. 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 SaltStack Config-Umgebung ausgeführt. Sie können auf der Registerkarte Aktivität der SaltStack Config-Benutzeroberfläche überprüfen, ob der Auftrag ausgeführt wird, oder indem Sie den Befehl python3 gefolgt von client.api.minions.get_minion_deployments() ausführen.

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 Befehl ausführen oder die Befehle \* test.ping und \* test.versions im Salt-Master-Befehlsfenster ausführen.