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 Automation Config.
Prerequisiti
Prima di poter distribuire un minion utilizzando l'API in un ambiente Windows, è necessario:
- Generare un ambiente Automation 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.
Se i file non sono presenti, contattare il supporto.
Nota: Il valore xxxx nel nome del file, ad esempio
salt-xxxx-windows--x86.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.
- Se l'ambiente è air gap, procedere come segue:
- Aprire il file di configurazione di RaaS in
/etc/raas/raas
.
- Aggiungere queste righe al file di configurazione:
minion_deployment:
airgap_install: true
- Riavviare il servizio RaaS con il comando
service raas restart
.
Nota: Se si utilizza una macchina virtuale Linux con protezione avanzata, in alcune situazioni non è possibile eseguire script da
/tmp
nella macchina virtuale.
- Nel terminale del Salt Master, installare le librerie seguenti eseguendo i comandi
pip3 install pypsexec smbprotocol
e pip3 install impacket --ignore-installed
.
Nota: Questo passaggio non è necessario quando si utilizza LCM per installare l'appliance di
Automation Config che include Salt Master. Tuttavia, questo passaggio è necessario quando si installa manualmente il Salt Master.
- Per identificare il nome di dominio completo del Salt Master, eseguire il comando
salt saltmaster grains.get fqdn
nel terminale del Salt Master.
- Nella macchina Windows, verificare che il file C:\Windows\System32\drivers\etc\hosts sia configurato con l'IP e il nome di dominio completo del Salt Master.
- Aprire PowerShell nella macchina Windows ed eseguire il comando seguente per aprire le porte richieste:
Porta |
Comandi |
445 |
New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445 Enable-Psremoting |
- Nel terminale del Salt Master, utilizzare questo comando per aprire le porte 4505 e 4506 nel Salt Master:
Porta |
Comandi |
4505-4506 |
netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506 |
Per ulteriori informazioni sul modello di comunicazione di Salt, vedere Informazioni su Automation Config.
- Assicurarsi che il nome di dominio completo sia configurato per il Salt Master eseguendo il comando ping [FQDN] nella macchina Windows.
- Effettuare questa chiamata API utilizzando un client SSEAPI con le credenziali corrette per l'ambiente.
Nota: Se
Automation Config è stato integrato con
VMware Aria Automation, il servizio
VMware Aria Automation effettua questa chiamata API quando si distribuiscono minion utilizzando un modello cloud.
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
Automation Config. È possibile verificare che il processo sia in esecuzione nella scheda
Attività dell'interfaccia utente di
Automation Config o eseguendo il comando
python3 seguito da
client.api.minions.get_minion_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.