L'obiettivo di questo caso d'uso è installare in modo programmatico il servizio dei minion Salt in un minion connettendo una macchina virtuale Windows all'ambiente SaltStack Config.
Prerequisiti
Prima di poter distribuire un minion utilizzando l'API in un ambiente Windows, è necessario:
- Generare un ambiente SaltStack Config con RaaS distribuito.
- Installare un Salt Master e un minion Salt.
- Distribuire una macchina virtuale Windows.
Procedura
- Verificare che la cartella etc/salt/cloud.deploy.d nel Salt Master contenga questi file.
Nota: Il valore xxxx nel nome del file, ad esempio salt-xxxx-readhat-8-x86_64-amd64.tar.gz, deve corrispondere alla versione del Salt Master. Per verificare la versione del Salt Master, eseguire il comando
salt-master -V nel Salt Master.
- Installare le librerie eseguendo i comandi
pip3 install pypsexec smbprotocol
e pip3 install impacket --ignore-installed
.
- Immettere il comando
salt saltmaster grains.get fqdn
per identificare il nome di dominio completo del Salt Master.
- Verificare che il file C:\Windows\System32\drivers\etc\hosts sia configurato con l'IP e il nome host/nome di dominio completo del Salt Master.
- Aprire PowerShell ed eseguire questi comandi per aprire le porte richieste:
Porta |
Comandi |
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 |
- Assicurarsi che il nome di dominio completo sia configurato per il Salt Master eseguendo il comando ping [FQDN].
- Immettere questa chiamata API con le credenziali corrette per l'ambiente:
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>',
)
La funzione deploy.minion inizia a essere eseguita nell'ambiente SSC. È possibile verificarla nella scheda Attività dell'interfaccia utente di SSC o eseguendo il comando
python3 seguito da
client.api.minions.get_minio_deployments().
risultati
Il minion è stato distribuito e configurato correttamente dall'ambiente Windows e dalla chiamata API.
Operazioni successive
Verificare che il minion sia stato distribuito correttamente eseguendo un comando
test.ping rispetto al minion utilizzando la finestra Esegui comando o eseguendo i comandi
\* test.ping e
\* test.versions nella finestra di comando del Salt Master.