O objetivo deste caso de uso é instalar programaticamente o serviço de subordinado Salt em um subordinado conectando uma VM Windows ao seu ambiente SaltStack Config.

Pré-requisitos

Antes de implantar um subordinado usando a API em um ambiente Windows, você deve:
  • Ter um ambiente SaltStack Config com RaaS implantado.
  • Ter um mestre Salt e um subordinado Salt instalados.
  • Ter uma VM Windows implantada.

Procedimento

  1. Verifique se a pasta etc/salt/cloud.deploy.d no mestre Salt contém esses arquivos.

    Se os arquivos não forem exibidos, entre em contato com o suporte.

    Observação: O xxxx no nome do arquivo, como em salt-xxxx-windows--x86.tar.gz, deve corresponder à versão do mestre Salt. Para verificar a versão do mestre Salt, execute o comando salt-master -V nele.
  2. No terminal do mestre Salt, instale as seguintes bibliotecas executando os comandos pip3 install pypsexec smbprotocol e pip3 install impacket --ignore-installed.
  3. Para identificar o FQDN do mestre Salt, execute o comando salt saltmaster grains.get fqdn no terminal do mestre Salt.
  4. Na sua máquina do Windows, verifique se o arquivo C: \Windows\System32\drivers\etc\hosts está configurado com o IP e o FQDN do mestre Salt.
  5. "Ao implantar subordinados em uma máquina Windows no Azure, abra o PowerShell e execute estes comandos para abrir as portas necessárias:"
    Porta Comandos
    445 New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445

    Enable-Psremoting
  6. "Se você não estiver implantando subordinados em uma máquina Windows no Azure, abra o PowerShell e execute estes comandos para abrir as portas necessárias:"
    Porta Comandos
    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 a 4506 netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506
  7. Certifique-se de que o FQDN esteja configurado para o mestre Salt, executando o comando ping [FQDN] na sua máquina do Windows.
  8. Faça essa chamada de API usando um cliente SSEAPI com as credenciais corretas para o seu ambiente.
    Observação: Se você integrou o SaltStack Config ao vRealize Automation, o serviço do vRealize Automation faz essa chamada de API para você ao implantar subordinados usando um modelo de nuvem.
    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>',
    
    )
    A função deploy.minion começa a ser executada no seu ambiente SaltStack Config. Você pode verificar se o trabalho está em execução na guia Atividade da interface do usuário do SaltStack Config ou executando o comando python3 seguido de client.api.minions.get_minion_deployments().

Resultados

O subordinado foi implantado e configurado com êxito a partir do seu ambiente Windows e chamada de API.

O que Fazer Depois

Verifique se o subordinado foi implantado com êxito, executando um comando test.ping no subordinado usando a janela Executar Comando ou executando os comandos \* test.ping e \* test.versions na janela de comando do mestre Salt.