El objetivo de este caso práctico es instalar mediante programación el servicio de minion de Salt en un minion; para ello, se conectará una máquina virtual de Windows al entorno de SaltStack Config.
Requisitos previos
Antes de poder implementar un minion mediante la API en un entorno de Windows, debe hacer lo siguiente:
- Tener un entorno de SaltStack Config con RaaS implementado.
- Tener un maestro de Salt y un minion de Salt instalados.
- Implementar una máquina virtual de Windows.
Procedimiento
- Comprobar que la carpeta etc/salt/cloud.deploy.d del maestro de Salt contenga estos archivos.
Si no ve los archivos, póngase en contacto con el soporte técnico.
Nota: La secuencia “xxxx” del nombre de archivo, por ejemplo,
salt-xxxx-windows--x86.tar.gz
, debe coincidir con la versión del maestro de Salt. Para comprobar la versión del maestro de Salt, ejecute el comando
salt-master -V en el maestro de Salt.
- En el terminal del maestro de Salt, instale las siguientes bibliotecas mediante la ejecución de los comandos
pip3 install pypsexec smbprotocol
y pip3 install impacket --ignore-installed
.
- Para identificar el FQDN del maestro de Salt, ejecute el comando
salt saltmaster grains.get fqdn
en el terminal del maestro de Salt.
- En la máquina Windows, verifique que el archivo C: \Windows\System32\drivers\etc\hosts esté configurado con la IP y el FQDN del maestro de Salt.
- Si va a implementar minions en una máquina Windows en Azure, abra Powershell y ejecute estos comandos para abrir los puertos necesarios:
destino |
Comandos |
445 |
New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445 Enable-Psremoting |
- Si no va a implementar minions en una máquina Windows en Azure, abra PowerShell y ejecute estos comandos para abrir los puertos necesarios:
destino |
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-4506 |
netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506 |
- Ejecute el comando ping [FQDN] en la máquina Windows a fin de asegurarse de que el FQDN esté configurado para el maestro de Salt.
- Realice esta llamada API mediante un cliente SSEAPI con las credenciales correctas para su entorno.
Nota: Si integró
SaltStack Config con
vRealize Automation; el servicio de
vRealize Automation realiza esta llamada de API por usted cuando implementa minions mediante una plantilla de nube.
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>',
)
La función
deploy.minion
comienza a ejecutarse en el entorno de
SaltStack Config. Puede comprobar que el trabajo se esté ejecutando en la pestaña
Actividad de la interfaz de usuario de
SaltStack Config o ejecutando el comando
python3 seguido de
client.api.minions.get_minion_deployments().
Resultados
El minion se implementó y configuró correctamente desde el entorno de Windows y la llamada API.
Qué hacer a continuación
Compruebe que el minion se haya implementado correctamente ejecutando un comando
test.ping en el minion mediante la ventana
Ejecutar comando o ejecutando los comandos
\* test.ping y
\* test.versions en la ventana del comando maestro de Salt.