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

  1. Verificare che la cartella etc/salt/cloud.deploy.d nel Salt Master contenga questi file.
    Un elenco dei file necessari nella directory cloud.deploy.d in un Salt Master

    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.
  2. Nel terminale del Salt Master, installare le librerie seguenti eseguendo i comandi pip3 install pypsexec smbprotocol e pip3 install impacket --ignore-installed.
  3. Per identificare il nome di dominio completo del Salt Master, eseguire il comando salt saltmaster grains.get fqdn nel terminale del Salt Master.
  4. 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.
  5. Aprire PowerShell nella macchina Windows ed eseguire questo comando per aprire le porte richieste:
    Porta Comandi
    445 New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445

    Enable-Psremoting
  6. 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 con Salt, vedere Informazioni generali su SaltStack.

  7. Assicurarsi che il nome di dominio completo sia configurato per il Salt Master eseguendo il comando ping [FQDN] nella macchina Windows.
    I risultati dell'esecuzione del comando ping FQDN su un computer Windows
  8. Effettuare questa chiamata API utilizzando un client SSEAPI con le credenziali corrette per l'ambiente.
    Nota: Se SaltStack Config è stato integrato con vRealize Automation, il servizio vRealize 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 SaltStack Config. È possibile verificare che il processo sia in esecuzione nella scheda Attività dell'interfaccia utente di SaltStack 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.