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.
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.
- No terminal do mestre Salt, instale as seguintes bibliotecas executando os comandos
pip3 install pypsexec smbprotocol
e pip3 install impacket --ignore-installed
.
- Para identificar o FQDN do mestre Salt, execute o comando
salt saltmaster grains.get fqdn
no terminal do mestre Salt.
- 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.
- Abra o PowerShell na máquina Windows e execute este comando para abrir as portas necessárias:
Porta |
Comandos |
445 |
New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445 Enable-Psremoting |
- 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 SaltStack para obter mais informações sobre o modelo de comunicação do Salt.
- Certifique-se de que o FQDN esteja configurado para o mestre Salt, executando o comando ping [FQDN] na sua máquina do Windows.
- 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.