Como desarrollador de plantillas de nube, puede agregar propiedades al YAML con el que se instala el minion de Salt al implementar la plantilla.

Las propiedades principales que se agregan a la plantilla incluyen el acceso remoto para la máquina que desea implementar y las propiedades de configuración para la instancia de SaltStack resource. El procedimiento solo incluye propiedades seleccionadas. El YAML incluye otras propiedades SaltStack resource que no se utilizan en este ejemplo. Para obtener más información, revise el esquema.

Si bien en este ejemplo se muestra cómo agregar el nombre de usuario y la contraseña para las propiedades de acceso remoto, es posible configurar una propiedad secreta y agregar la propiedad a la plantilla. Para ver un ejemplo, consulte Propiedades secretas de Automation Assembler.

Si el minion de Salt se implementa en un entorno de Windows, revise Activación de minions de Windows para conocer los requisitos de dependencias adicionales.

Procedimiento

  1. En Automation Assembler, seleccione Diseño > Plantillas de nube.
  2. Abra una plantilla existente.
  3. Busque la instancia de SaltStack resource y arrástrela al lienzo.
  4. Asocie la instancia de SaltStack resource a la máquina en la que se instalará el minion.
  5. En el panel de código, agregue propiedades a la instancia de SaltStack resource.
    No es necesario incluir todas las propiedades posibles. Los valores utilizados en este ejemplo se explican en la tabla.
    Nota: De manera predeterminada, la propiedad createTimeout está establecida en 30 minutos. Puede actualizarla según sea necesario usando el formato minutos/horas, como por ejemplo: 30m o 1h.
    Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource["Cloud_VM_1".id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe
          additionalMinionParams:
            grains:
              roles:
                - webserver
                - database   
           additionalAuthParams:
             profile:
                tmp_dir: /var/run

    Esta es una descripción de las propiedades de Cloud_SaltStack_1 utilizadas en este ejemplo.

    Propiedad Descripción
    masterId En el esquema de ejemplo, el valor de masterId es saltstack_enterprise_installer.

    Es posible que haya identificadores maestros definidos en Automation Config en Administración > Claves maestras.

    hosts El valor de hosts es el identificador de la máquina o el clúster de máquinas en el que desea instalar el minion. De forma predeterminada, el nombre de la máquina se pasa como el identificador de minion en Automation Config.

    Se recomienda elegir nombres de máquina que tengan 15 caracteres o menos, especialmente si va a implementar minions en Windows. Windows no permite nombres de host que superen los 15 caracteres.

    Si desea definir una convención de nomenclatura personalizada para las máquinas que desea implementar, consulte Nomenclatura personalizada para recursos implementados en Automation Assembler.

    saltEnvironment En este ejemplo, sse es una ubicación de archivo para los archivos de estado.

    Es posible que tenga los archivos de estado en otras ubicaciones del servidor de archivos en Automation Config en Config > Servidor de archivos.

    stateFiles En este ejemplo, doe.sls es un archivo de estado proporcionado en el directorio del servidor de archivos especificado como saltEnvironment.
    variables Las variables definidas en la plantilla de nube se pasan como pilares a estados de Salt. En este ejemplo, la variable user se pasa al archivo doe.sls.

    Se puede hacer referencia a las variables en los archivos de estado mediante Jinja, como se muestra en el siguiente ejemplo:

    {% set username = pillar.get('user', 'random') %}
    
    friend:
      user.present:
        - names:
          -  {{username}}

    El archivo doe.sls garantiza que exista un usuario, representado por la variable user en la plantilla de nube. Si no se especifica la variable en la plantilla de nube, se garantiza que el usuario random esté presente.

    additionalMinionParams Utilice esta propiedad para transferir parámetros de configuración adicionales para el minion. Estos parámetros deben pasarse como un diccionario:

    • grains: utilice esta propiedad para asignar Salt Grains personalizados al minion. Se admiten uno o más pares de key:value. Los valores pueden ser una cadena, una matriz o un mapa.

      Solo puede asignar datos de Grain personalizados al aprovisionar una máquina nueva. No puede asignar datos de Grain personalizados al ejecutar las acciones del día 2 Asociar recurso de SaltStack ni Actualizar configuración de Salt.

    additionalAuthParams Utilice esta propiedad para transferir parámetros de autorización adicionales a fin de aprovisionar el minion que se combinará o reemplazará con la configuración predeterminada de Salt-cloud. Estos parámetros deben pasarse como un diccionario.

    Se aceptan uno o más pares clave:valor como una cadena, una matriz o un mapa. Para ver un ejemplo de cómo se utiliza esta propiedad, consulte Caso práctico: cómo implementar minions mediante la API en un entorno de Linux.

    Nota: No se pueden asignar parámetros de autorización adicionales cuando se ejecuta la acción del día 2 Actualizar configuración de Salt.
  6. Agregue propiedades de remoteAccess a la máquina que aloja el minion de Salt.

    Si va a implementar un minion de Salt en un equipo Linux, el valor de la clave authentication puede ser usernamePassword o generatedPublicPrivateKey. No se admite publicPrivateKey.

    Si va a implementar un minion de Salt en un equipo Windows, el valor de la clave authentication debe ser usernamePassword..

     remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
  7. Compruebe que el YAML incluya propiedades similares a la siguiente muestra.
    resources:
      Cloud-Network:
        type: Cloud.Network
        properties:
          networkType: existing 
      Cloud_VM_1:
        type: Cloud.vSphere.Machine
        properties:
          image: ubuntu
          flavor: small
          remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
          networks:
            - network: ${resource["Cloud-Network"].id}
      Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource["Cloud_VM_1"].id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe
          additionalMinionParams:
            grains:
              roles:
                - webserver
                - database
  8. Pruebe e implemente la plantilla de nube.
    Si se produce un error en la implementación del minion, consulte Solución de problemas de implementaciones de minions.
  9. Compruebe las propiedades de configuración de Salt para la máquina implementada.
    1. Seleccione Implementaciones > Implementaciones y abra los detalles de la implementación.
    2. En la pestaña Topología, haga clic en la máquina y expanda las propiedades de Configuración de Salt en el panel derecho.

      Captura de pantalla de la pestaña Topología con las propiedades de configuración de Salt expandidas en el panel derecho. Las propiedades incluyen el ID principal, el entorno de Salt y los archivos de estado.

Verificar el minion en Automation Config

Después de instalar el minion en la máquina virtual, localice el minion y ejecute todos los comandos o trabajos necesarios en el recurso.

Procedimiento

  1. Para abrir Automation Config, haga clic en el menú de aplicaciones situado en la esquina superior derecha y haga clic en Consola de Cloud Services.
  2. Abra el servicio VMware Aria Automation.
  3. Haga clic en el mosaico del servicio Config.
  4. En Automation Config, expanda Claves de minion y haga clic en Aceptadas.
  5. En la columna ID de minion, haga clic en el icono de filtro e introduzca el nombre del minion.
    El nombre predeterminado del minion es el nombre de host de la máquina virtual. En este ejemplo, el ID de minion es salt-vm-010.
    Captura de pantalla de las claves de minion Aceptadas en Automation Config.
  6. Para ver los detalles, haga clic en el nombre del minion.
    Puede ejecutar trabajos o comandos en el minion. Por ejemplo, Uso de disco de muestra. Este trabajo devuelve estadísticas de uso de disco para un minion.
    Captura de pantalla de la página de detalles del ID de minion de ejemplo

Ver datos de Salt Grain

Después de terminar de implementar un minion de Salt en las máquinas virtuales, puede ver los Grains del minion en Automation Assembler.

Se recopilan Salt Grains para el sistema operativo, el nombre de dominio, la dirección IP, el kernel, el tipo de SO, la memoria y muchas otras propiedades del sistema del minion. Si no tiene acceso a Automation Config o desea ver de manera rápida los datos de Grain sin salir de la interfaz de usuario de Automation Assembler, puede utilizar la pestaña Topología para ver los datos de Grain. Consulte Salt Grains para obtener más información sobre los datos de Grain.

Para ver los Grains de un minion, haga lo siguiente:

  1. En Automation Assembler, seleccione Recursos > Implementaciones y busque la implementación.
  2. En la pestaña Topología, seleccione la máquina virtual asociada al SaltStack resource.
  3. Busque la sección Configuración de Salt en el panel derecho y desplácese hacia abajo para ver la lista de datos de Grain.Captura de pantalla de los datos de Grain en Automation Assembler

Los datos de Grain de un minion se recuperan luego de la implementación del minion. Para ver cuándo se actualizaron por última vez los datos de Grain, puede desplazarse hasta la parte inferior de la sección Configuración de Salt.

Nota: Como alternativa, puede ver los datos de Salt Grain al hacer clic en Recursos > Máquinas virtuales y al seleccionar la máquina virtual deseada para ver sus configuraciones y atributos.
Captura de pantalla de los datos actualizados más recientes de Grain en Automation Assembler