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 Automation 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 Automation Config con RaaS implementado.
  • Tener un maestro de Salt y un minion de Salt instalados.
  • Implementar una máquina virtual de Windows.

Procedimiento

  1. Comprobar que la carpeta etc/salt/cloud.deploy.d del maestro de Salt contenga estos archivos.
    Lista de los archivos necesarios en el directorio cloud.deploy.d de un maestro de Salt

    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.
  2. Si su entorno está aislado, complete los siguientes pasos:
    1. Abra el archivo de configuración de RaaS en /etc/raas/raas.
    2. Agregue estas líneas al archivo de configuración:
      minion_deployment:
        airgap_install: true
    3. Reinicie el servicio RaaS mediante el comando service raas restart.
    Nota: Si utiliza una máquina virtual Linux reforzada, es posible que en algunas situaciones los scripts no se puedan ejecutar desde /tmp en la máquina virtual.
    • Si utiliza Automation Assembler 8.10.2 o una versión superior: agregue la propiedad additionalAuthParams al recurso de Automation Config en la plantilla de nube. Para obtener más información, consulte Agregar el recurso de Automation Config a la plantilla de nube.
      additionalAuthParams:
        profile:
          tmp_dir: /var/cache/salt
    • Si utiliza Automation Assembler 8.10.1 o una versión inferior: modifique el archivo /etc/salt/cloud.providers.d/ssc_saltify_provider.conf con
      ssc_saltify_provider:
        driver: saltify
        tmp_dir: /var/cache/salt
      Si este archivo de configuración no existe, créelo y agregue los ajustes anteriores.
  3. 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.
    Nota: Este paso no es necesario cuando se utiliza LCM para instalar el dispositivo de Automation Config que incluye el maestro de Salt. Sin embargo, este paso es necesario cuando se instala manualmente el maestro de Salt.
  4. Para identificar el FQDN del maestro de Salt, ejecute el comando salt saltmaster grains.get fqdn en el terminal del maestro de Salt.
  5. 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.
  6. Abra PowerShell en la máquina Windows y ejecute el siguiente comando para abrir los puertos necesarios:
    destino Comandos
    445 New-NetFirewallRule -Name "SMB445" - DisplayName "SMB445" -Protocol TCP - LocalPort 445

    Enable-Psremoting
  7. En el terminal del maestro de Salt, utilice este comando para abrir los puertos 4505 y 4506 en el maestro de Salt:
    destino Comandos
    4505-4506 netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505-4506

    Para obtener más información sobre el modelo de comunicación de Salt, consulte Descripción de Automation Config.

  8. 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.
    Resultados de ejecutar el comando ping a FQDN en una máquina Windows
  9. Realice esta llamada API mediante un cliente SSEAPI con las credenciales correctas para su entorno.
    Nota: Si integró Automation Config con VMware Aria Automation; el servicio de VMware Aria 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 Automation Config. Puede comprobar que el trabajo se esté ejecutando en la pestaña Actividad de la interfaz de usuario de Automation 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.