Como desarrollador de plantillas de nube, puede agregar propiedades al YAML que instala el minion de SaltStack Config 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 el recurso de SaltStack Config. El procedimiento solo incluye propiedades seleccionadas. El YAML incluye otras propiedades de recursos de SaltStack Config 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 Cloud Assembly.

Procedimiento

  1. En Cloud Assembly, seleccione Diseño > Plantillas de nube.
  2. Abra una plantilla existente.
  3. Busque el recurso de SaltStack Config y arrástrelo al lienzo.
  4. Asocie el recurso de SaltStack Config a la máquina en la que se instalará el minion.
  5. En el panel de código, agregue propiedades al recurso SaltStack Config.

    No es necesario incluir todas las propiedades posibles. Los valores utilizados en este ejemplo se explican en la tabla.

    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 SaltStack 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 SaltStack 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 Cloud Assembly.

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

    Puede tener los archivos de estado en otras ubicaciones de servidor de archivos en SaltStack Config en Configuración > 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 SaltStack 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 SaltStack Config, haga clic en el menú de aplicaciones situado en la esquina superior derecha y haga clic en Consola de Cloud Services.
  2. Haga clic en el mosaico del servicio SaltStack Config.
  3. En SaltStack Config, expanda Claves de minion y haga clic en Aceptadas.
  4. 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 SaltStack Config.
  5. 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 Cloud Assembly.

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 SaltStack Config o desea ver de manera rápida los datos de Grain sin salir de la interfaz de usuario de Cloud Assembly, 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 Cloud Assembly, seleccione Recursos > Implementaciones y busque la implementación.
  2. En la pestaña Topología, seleccione la máquina virtual adjunta al recurso de SaltStack Config.
  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 Cloud Assembly

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.

Captura de pantalla de los datos actualizados más recientes de Grain en Cloud Assembly
Nota: Los datos de Grain solo se actualizan si ejecuta la acción del día 2 Actualizar configuración de Salt en un recurso de SaltStack Config. No se actualizará si se realizan cambios fuera de Cloud Assembly.