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

Pré-requisitos

Antes de implantar um subordinado usando a API em um ambiente Windows, você deve:
  • Ter um ambiente Automation 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.
    Uma lista dos arquivos necessários no diretório cloud.deploy.d em um Mestre Salt

    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. Se o seu ambiente estiver isolado e conclua estas etapas:
    1. Abra o arquivo de configuração do RaaS no /etc/raas/raas.
    2. Adicione estas linhas ao arquivo de configuração:
      minion_deployment:
        airgap_install: true
    3. Reinicie o serviço RaaS usando o comando service raas restart.
    Observação: Se você estiver usando uma VM Linux reforçada, haverá algumas situações em que os scripts não poderão ser executados a partir de /tmp na VM.
    • Se estiver usando o Automation Assembler versão 8.10.2 ou superior: adicione a propriedade additionalAuthParams ao recurso Automation Config no seu modelo de nuvem. Para obter mais informações, consulte Adicionar o recurso Automation Config ao modelo de nuvem.
      additionalAuthParams:
        profile:
          tmp_dir: /var/cache/salt
    • Se você estiver usando o Automation Assembler versão 8.10.1 ou inferior: modifique o arquivo /etc/salt/cloud.providers.d/ssc_saltify_provider.conf com
      ssc_saltify_provider:
        driver: saltify
        tmp_dir: /var/cache/salt
      Se esse arquivo de configuração não existir, crie-o e adicione a configuração acima.
  3. No terminal do mestre Salt, instale as seguintes bibliotecas executando os comandos pip3 install pypsexec smbprotocol e pip3 install impacket --ignore-installed.
    Observação: Essa etapa não é necessária ao usar o LCM para instalar o dispositivo do Automation Config do que inclui o Mestre Salt. No entanto, essa etapa é necessária ao instalar manualmente o Mestre Salt.
  4. Para identificar o FQDN do mestre Salt, execute o comando salt saltmaster grains.get fqdn no terminal do mestre Salt.
  5. 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.
  6. Abra o PowerShell na máquina Windows e execute o seguinte comando para abrir as portas necessárias:
    Porta Comandos
    445 New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445

    Enable-Psremoting
  7. No terminal do Mestre Salt, use este comando para abrir as portas 4505 e 4506 no Mestre Salt:
    Porta Comandos
    4505 a 4506 netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506

    Consulte Noções básicas sobre o Automation Config para obter mais informações sobre o modelo de comunicação do Salt.

  8. Certifique-se de que o FQDN esteja configurado para o mestre Salt, executando o comando ping [FQDN] na sua máquina do Windows.
    Os resultados da execução do comando ping FQDN em uma máquina Windows
  9. Faça essa chamada de API usando um cliente SSEAPI com as credenciais corretas para o seu ambiente.
    Observação: Se você integrou o Automation Config ao VMware Aria Automation, o serviço do VMware Aria 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 Automation Config. Você pode verificar se o trabalho está em execução na guia Atividade da interface do usuário do Automation 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.