Si integró SaltStack Config con vRealize Automation, puede aplicar el recurso de SaltStack Config para instalar los minions en las máquinas virtuales de las implementaciones. Después de implementar el minion, puede utilizar las potentes capacidades de administración de configuración, corrección de desviaciones y administración de estado de SaltStack Config para administrar los recursos.

Los minions son agentes que ejecutan el servicio salt-minion. El servicio se suscribe a trabajos publicados por un maestro de Salt, que es un servidor que ejecuta el servicio maestro de Salt. Cuando se aplica un trabajo específico a ese minion, este lo ejecuta.

Puede utilizar el recurso de SaltStack Config para implementar minions y aplicar archivos de estado al implementar máquinas Linux y Windows. Para agregar o actualizar minions y archivos de estado en implementaciones existentes, puede ejecutar la acción de día 2 Asociar recurso de SaltStack. Para obtener más información acerca de las acciones de día 2, consulte Acciones que se pueden ejecutar en las implementaciones de Cloud Assembly.

Si utilizó la propiedad saltConfiguration para implementar minions y archivos de estado como una acción de día 0, considere actualizar las plantillas de nube para usar el recurso de SaltStack Config. La propiedad saltConfiguration ahora está obsoleta. Aún puede utilizar la propiedad saltConfiguration en las plantillas de nube, pero las funciones de integración de SaltStack Config estarán limitadas.

La acción Aplicar configuración de Salt del día 2 aún está disponible para los recursos que utilizan la propiedad saltConfiguration.

Antes de comenzar

  1. Compruebe que instaló SaltStack Config y que configuró la integración. Consulte Crear una integración de SaltStack Config en vRealize Automation.

    Para familiarizarse con el funcionamiento de SaltStack Config, incluidos los conceptos clave de minions, consulte Descripción de la interfaz de usuario de SaltStack.

  2. En SaltStack Config, compruebe que funcione la resolución de nombres de FQDN del minion al maestro.
    1. Para comprobar el FQDN en el maestro de Salt en SaltStack Config, seleccione Minions > Todos los minions.
    2. Filtre la columna ID de minion por el valor saltmaster.
    3. Haga clic en saltmaster para ver los detalles.
    4. Compruebe que el valor de FQDN sea correcto.
  3. Si va a implementar minions en una máquina Linux, compruebe que las imágenes de vSphere que desea implementar con un minion de Salt tengan habilitadas las capacidades de SSH. SSH se utiliza para acceder de forma remota a la máquina e implementar el minion.
  4. Si va a implementar minions en una máquina Windows, consulte Cómo implementar minions mediante la API (RaaS) en un entorno de Windows.

  5. Compruebe que puede asignar direcciones IP a las máquinas que implemente.

    SaltStack Config requiere que las máquinas tengan direcciones IP. Utilice las direcciones IP del rango de CIDR de IP públicas para el SDDC (centro de datos definido por software) donde se encuentra el maestro de Salt.

  6. Compruebe que la plantilla de nube a la que desea agregar el minion se pueda implementar antes de agregar las propiedades del recurso SaltStack Config.
  7. Compruebe que tiene las siguientes funciones de servicio:
    1. Administrador de Cloud Assembly
    2. Usuario de Cloud Assembly
    3. Administrador de Service Broker

    Estas funciones de servicio son necesarias para utilizar el recurso de SaltStack Config.

Agregar el recurso de SaltStack Config a la plantilla de nube

Como desarrollador de plantillas de nube, puede agregar propiedades al YAML con el que se 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 SaltStack Config. El procedimiento solo incluye propiedades seleccionadas. El YAML incluye otras propiedades del recurso 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 SaltStack Config y arrástrelo al lienzo.
  4. Asocie el recurso SaltStack Config a la máquina en la que se instalará el minion.
  5. En el panel de código, agregue propiedades al recurso Cloud_SaltStack_1.

    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_vSphere_Machine_1.id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe

    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. Es posible que tenga los archivos de estado en otras ubicaciones del servidor de archivos en SaltStack Config en Config > Servidor de archivos.
    stateFiles En este ejemplo, doe.sls es un archivo de estado proporcionado en el directorio de servidores de archivo como saltEnvironment.
    variables Las variables son los valores que utiliza el archivo de estado. En este ejemplo, doe.sls acepta un valor user.
  6. Agregue propiedades de remoteAccess a la máquina que aloja el minion de Salt.

    El valor de la clave de authentication debe ser usernamePassword o generatedPublicPrivateKey. No se admite publicPrivateKey.

     remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
  7. Compruebe que el YAML incluya propiedades similares a la siguiente muestra.
    resources:
      Cloud_vSphere_Machine_1:
        type: Cloud.vSphere.Machine
        properties:
          image: ubuntu
          flavor: small
          remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
      Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource.Cloud_vSphere_Machine_1.id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe
  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 minion.
  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 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 vra-vm-05.
    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

Solución de problemas de implementaciones de minion

Lea sobre algunos errores comunes que experimentan los usuarios al implementar minions de Salt mediante el recurso de SaltStack Config o la propiedad saltConfiguration.

Inicio retrasado del host

Si los servicios de Windows o Linux en el host no están listos después de implementar la plantilla de nube, es posible que reciba el error "Error en la ejecución del archivo de estado o la implementación de minion" en Cloud Assembly.

Para resolver este error, actualice el complemento principal a la versión estable más reciente. Después de actualizar, puede habilitar una opción de configuración en /etc/salt/master.d/raas.conf que permita que los servicios de Windows y Linux se activen antes de implementar el minion de Salt.

Después de actualizar a la versión más reciente del complemento principal, complete estos pasos para retrasar el inicio del host:

  1. Compruebe la pestaña Historial en la página de detalles de la implementación.
  2. Si el mensaje de error indica que se produjo un error en la implementación del minion o en la ejecución del archivo de estado, copie el identificador de trabajo (JID) y abra SaltStack Config.
  3. En SaltStack Config, seleccione Actividad > Completado para abrir los trabajos completados.
  4. En la columna JID, haga clic en el icono de filtro y escriba el JID.
  5. Haga clic en el JID para revisar la página de resultados del trabajo.
  6. Haga clic en la pestaña Sin formato para ver el resultado sin formato del trabajo.

    Windows

    Si la última línea de la salida sin procesar del trabajo contiene "No se pudo conectar al host: se agotó el tiempo de espera", debe agregar esta opción de configuración a /etc/salt/master.d/raas.conf para retrasar el inicio en 180 segundos:
    sseapi_win_minion_deploy_delay: 180

    Linux

    Si la última línea de la salida sin procesar del trabajo contiene "No se puede acceder al host remoto con las credenciales proporcionadas", debe agregar esta opción de configuración a /etc/salt/master.d/raas.conf para retrasar el inicio en 90 segundos:
    sseapi_linux_minion_deploy_delay: 90
  7. Reinicie el servicio principal de Salt:
    systemctl restart salt-master
  8. Vuelva a implementar la plantilla de nube.

    Si la implementación no se realizó correctamente, puede aumentar el parámetro de retraso y volver a implementar la plantilla.

Qué hacer a continuación

Para utilizar las capacidades de SaltStack Config para administrar sus recursos, consulte la documentación de SaltStack Config.