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.
    Observação: O xxxx no nome do arquivo, como em salt-xxxx-readhat-8-x86_64-amd64.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. Instale bibliotecas executando os comandos pip3 install pypsexec smbprotocol e pip3 install impacket --ignore-installed.
  3. Digite o comando salt saltmaster grains.get fqdn para identificar o FQDN do mestre Salt.
  4. Verifique se o arquivo C: \Windows\System32\drivers\etc\hosts na sua máquina Windows está configurado com o IP e o nome do host/FQDN do mestre Salt.
  5. 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
  6. Certifique-se de que o FQDN esteja configurado para o mestre Salt, executando o comando ping [FQDN].
  7. Digite essa chamada de API com as credenciais corretas para o seu 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>',
    
    )
    A função deploy.minion começa a ser executada no seu ambiente SSC. É possível verificar isso na guia Atividade da interface de usuário do SSC ou executando o comando python3 seguido de client.api.minions.get_minio_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.