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
- 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.
- Instale bibliotecas executando os comandos
pip3 install pypsexec smbprotocol e pip3 install impacket --ignore-installed.
- Digite o comando
salt saltmaster grains.get fqdn para identificar o FQDN do mestre Salt.
- 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.
- 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 -ForceRestart-Service winrm |
| 4505 a 4506 |
netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506 |
- Certifique-se de que o FQDN esteja configurado para o mestre Salt, executando o comando ping [FQDN].
- 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.