Después de instalar e integrar el servicio de Automation Config, también debe instalar, ejecutar y registrar el servicio de minion de Salt en cualquier nodo que tenga previsto administrar mediante Automation Config. Puede implementar el servicio de minion de Salt en los nodos de mediante plantillas de nube de VMware Aria Automation o mediante la instalación del servicio a través de Secure Shell (SSH).

Salt y su relación con Automation Config

Automation Config se ejecuta en Salt, un marco de ejecución remota de código abierto basado en Python que se utiliza para:

  • Administración de la configuración
  • Automatización
  • Aprovisionamiento
  • Orquestación

Salt es la tecnología que subyace a la funcionalidad principal de Automation Config. Automation Config mejora y extiende Salt, lo que proporciona funciones y funcionalidades adicionales que mejoran la facilidad de uso.

Salt utiliza el modelo controlador-cliente en el que un controlador emite comandos para un cliente y este ejecuta el comando. En el ecosistema de Salt, el controlador es un servidor que ejecuta el servicio principal de Salt. Emite comandos a uno o varios minions de Salt, que son nodos que ejecutan el servicio de minion de Salt y que están registrados con ese maestro en particular.

Otra forma de describir Salt es como un modelo de editor-suscriptor. El maestro publica los trabajos que se deben ejecutar y los minions se suscriben a esos trabajos. Cuando se aplica un trabajo específico a ese minion, este lo ejecuta. Cuando un minion termina de ejecutar un trabajo, envía los datos devueltos del trabajo al maestro.

Los minions son nodos que ejecutan el servicio salt-minion. El servicio escucha los comandos de un maestro de Salt y realiza las tareas solicitadas. Puede implementar minions desde plantillas de nube de VMware Aria Automation.

Antes de poder empezar a usar Automation Config para la administración de la configuración, primero debe instalar el servicio de minion de Salt en todos los nodos que desee administrar. También debe registrar los minions enviando y aceptando sus claves para Automation Config.

Antes de comenzar

  • Instale y configure Automation Config, e intégrelo con VMware Aria Automation.
  • Los nodos que administra Automation Config deben poder comunicarse con el maestro de Salt y deben residir en la misma red que el punto de integración de Automation Config y el maestro de Salt.
  • Las máquinas de vSphere que se implementan en una red privada deben poder iniciar una conexión con la integración de Automation Config y el maestro de Salt.

Instalar el servicio de minion de Salt a través de SSH

El proceso para instalar el servicio de minion de Salt con SSH depende del sistema operativo que se ejecuta en esos nodos.

Después de instalar el servicio de minion de Salt:
  1. Configure cada minion para que se comunique con el maestro creando un archivo master.conf en el directorio /etc/salt/minion.d. En este archivo, proporcione la dirección IP del maestro. Por ejemplo: master: 192.0.2.1
  2. Inicie el servicio de minion:

    sudo systemctl enable salt-minion

    sudo systemctl start salt-minion

  3. Repita los pasos anteriores para todos los nodos restantes.

Después de configurar estos archivos de minion para que apunten al maestro de Salt, acepte las claves de minion en el servicio de Automation Config en el área de trabajo Claves de minion.

Instalar el servicio de minion de Salt mediante plantillas de nube de VMware Aria Automation

Para implementar el servicio de minion de Salt mediante plantillas de nube, debe tener acceso a cloud-init (Linux) o Cloudbase-init (Windows) y saber usarlos. Para agregar minions de Salt al maestro de Salt configurado para la integración de Automation Config, la máquina virtual de la plantilla de nube debe ser compatible con cloud-init (Linux) o Cloudbase-init (Windows).

En las siguientes secciones se explica cómo implementar el servicio de minion de Salt mediante plantillas de nube.

Agregar minions al maestro de Salt configurado para VMware Aria Automation

Cuando se instala Automation Config, se especifica una dirección IP principal de Salt. Esa dirección IP principal se utiliza como la propiedad masterAddress al implementar minions desde una plantilla de nube de VMware Aria Automation.

Instale e implemente minions mediante el uso de los scripts de cloud-init o Cloudbase-init en una plantilla de nube o una implementación de VMware Aria Automation. También puede utilizar una asignación de imagen que represente un script de configuración de nube que use cualquiera de estos formatos. Para agregar minions de Salt al maestro de Salt asociado a una integración de Automation Config de VMware Aria Automation, la máquina de destino debe ser compatible con cloud-init (Linux) o Cloudbase-init (Windows). Los scripts de configuración de nube de VMware Aria Automation admiten ambos formatos.

Configure un recurso de máquina en la plantilla de nube con un valor minionId y un valor cloudConfig, y haga referencia al grupo de propiedades SaltStackConfiguration. El grupo de propiedades SaltStackConfiguration se crea durante la instalación y la configuración del servicio de Automation Config en VMware Aria Suite Lifecycle. Contiene las propiedades masterAddress y masterFingerprint.

El valor de minionId debe coincidir con el valor especificado para /salt/minion_id de la máquina en la sección cloudConfig del código de la plantilla de nube.

Nota: De forma predeterminada, los minions se identifican con el maestro por su nombre de host, pero se puede establecer un identificador de minion personalizado. Para obtener información sobre cómo establecer un identificador de minion personalizado, consulte Establecer un identificador de minion personalizado (opcional) en la documentación Instalación y actualización de Automation Config.
A continuación, se muestran ejemplos de códigos de plantilla de nube de VMware Aria Automation basados en Windows y en Linux. Tenga en cuenta que los scripts de configuración de nube se pueden especificar mediante cualquiera de los siguientes métodos:
  • Una imagen de VMware Aria Automation que se invoca desde el código de plantilla de nube
  • Un script de configuración de nube que se invoca desde el código de plantilla de nube
  • Contenido del script de configuración de nube que se agrega directamente al código de plantilla de nube

Nota: Cuando se implementa una plantilla de nube que contiene minions de Salt y la implementación no está visible en Automation Assembler, puede mostrar la implementación mediante el servicio de Automation Service Broker.

Ejemplo: implementación basada en Linux y cloud-init

A continuación, se muestra un ejemplo de configuración de plantilla de nube para implementar minions para una máquina basada en Linux que admita cloud-init:
resources:
  Salt-Minion:
    type: Cloud.Machine
    properties:
      image: Ubuntu-18
      flavor: medium
      constraints:
        - tag: 'env:vsphere'
      cloudConfig: |
        #cloud-config
        hostname: ${input.saltminionhostname}
        users:
          - name: ${input.user}
            sudo: ['ALL=(ALL) NOPASSWD:ALL']
            groups: sudo
            shell: /bin/bash
        runcmd:
          - PASS=${input.password}
          - USER=${input.user}
          - echo $USER:$PASS | /usr/sbin/chpasswd
          - sed -i "s/PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
          - service ssh reload
          - curl -L https://bootstrap.saltstack.com -o install_salt.sh
          - sudo sh install_salt.sh -A ${propgroup.SaltStackConfiguration.masterAddress}

Ejemplo: implementación basada en Windows y Cloudbase-init

A continuación, se muestra un ejemplo de configuración de plantilla de nube para implementar minions para un equipo basado en Windows que admita Cloudbase-init:
formatVersion: 1
inputs: {}
resources:
  WindowsVM-Minion:
    type: Cloud.vSphere.Machine
    properties:
      image: win2016
      flavor: medium
      customizationSpec: Windows
      minionId: '${resource.WindowsVM-Minion.resourceName}'
      networks:
        - network: '${resource.wpnet.id}'
          name: '${wpnet.name}'
          assignPublicIpAddress: true
      cloudConfig: |
        #ps1_sysnative
        [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -OutFile C:\Salt-Minion-3002.2-Py3-AMD64-Setup.exe -Uri https://repo.saltstack.com/windows/Salt-Minion-3002.2-Py3-AMD64-Setup.exe
        Start-Process -Wait -FilePath "C:\Salt-Minion-3002.2-Py3-AMD64-Setup.exe" -ArgumentList "/S" -PassThru
        ((Get-Content -path C:\salt\conf\minion -Raw) -replace "#master: salt", "master: ${propgroup.SaltStackConfiguration.masterAddress}") | Set-Content -Path C:\salt\conf\minion
        ((Get-Content -path C:\salt\conf\minion -Raw) -replace "#master_finger: ''", "master_finger: '${propgroup.SaltStackConfiguration.masterFingerPrint}'") | Set-Content -Path C:\salt\conf\minion
        Set-Content -Path C:\salt\conf\minion_id -Value '${resource.WindowsVM-Minion.resourceName}'
        C:\salt\salt-call.bat service.restart salt-minion
  wpnet:
    type: Cloud.Network
    properties:
      name: wpnet
      networkType: existing

Cómo configurar los comandos de PowerShell

Los comandos de PowerShell se configuran en la sección cloudConfig de las plantillas de nube.

Antes de habilitar los comandos de PowerShell, descargue el paquete de minions de Salt del sitio web del repositorio de Salt. A continuación, complete los siguientes pasos:
  1. Instale el servicio Salt Minion en la máquina virtual de Windows.
  2. Actualice el valor de nombre de host maestro de Salt en la configuración de Minion.
  3. Actualice el valor de huella digital de maestro de Salt en la configuración de Minion.
  4. Establezca minion_id en el nombre de recurso de la máquina virtual que se utilizará para aceptar el minion en el maestro de Salt.
  5. Reinicie el minion.

Más información sobre la implementación de minions de Salt

Para ver métodos alternativos de uso de Automation Config integrado para implementar minions de Salt desde una plantilla de nube de VMware Aria Automation, consulte Secretos de Assembler y ABX (y cómo utilizarlos para instalar agentes minion de Automation Config).

Para obtener información relacionada con la definición y la implementación de plantillas de Automation Assembler en general, especialmente si está familiarizado con Config, pero no conoce Aria Automation, consulte Diseñar las implementaciones de Assembler.