Después de instalar e integrar el servicio de SaltStack Config, también debe instalar, ejecutar y registrar el servicio de minion de Salt en cualquier nodo que tenga previsto administrar mediante SaltStack Config. Puede implementar el servicio de minion de Salt en los nodos de mediante plantillas de nube de vRealize Automation o mediante la instalación del servicio a través de Secure Shell (SSH).
Salt y su relación con SaltStack Config
SaltStack 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 SaltStack Config. SaltStack 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 vRealize Automation.
Antes de poder empezar a usar SaltStack 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 SaltStack Config.
Antes de comenzar
- Instale y configure SaltStack Config, e intégrelo con vRealize Automation.
- Los nodos que administra SaltStack Config deben poder comunicarse con el maestro de Salt y deben residir en la misma red que el punto de integración de SaltStack 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 SaltStack 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.
- Para obtener información sobre la instalación del servicio de minion de Salt en RedHat Linux o CentOS, consulte Dependencias requeridas de SaltStack Config.
- Para otros sistemas operativos, consulte http://repo.saltstack.com/.
- 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
- Inicie el servicio de minion:
sudo systemctl enable salt-minion
sudo systemctl start salt-minion
- 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 SaltStack Config en el área de trabajo Claves de minion.
Instalar el servicio de minion de Salt mediante plantillas de nube de vRealize 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 SaltStack 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 vRealize Automation
Cuando se instala SaltStack 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 vRealize 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 vRealize 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 SaltStack Config de vRealize 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 vRealize 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 SaltStack Config en vRealize Suite Lifecycle Manager. 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.
- Una imagen de vRealize 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 Cloud Assembly, puede mostrar la implementación mediante el servicio de Service Broker.
Ejemplo: implementación basada en Linux y 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
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.
- Instale el servicio Salt Minion en la máquina virtual de Windows.
- Actualice el valor de nombre de host maestro de Salt en la configuración de Minion.
- Actualice el valor de huella digital de maestro de Salt en la configuración de Minion.
- 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. - Reinicie el minion.
Más información sobre la implementación de minions de Salt
Para ver métodos alternativos de uso de SaltStack Config integrado para implementar minions de Salt desde una plantilla de nube de vRealize Automation, consulte Secretos de Cloud Assembly y ABX (y cómo utilizarlos para instalar agentes minion de SaltStack de vRealize).
Para obtener información relacionada con la definición y la implementación de plantillas de Cloud Assembly en general, especialmente si está familiarizado con SaltStack, pero no conoce vRealize Automation, consulte Diseñar las implementaciones de vRealize Automation Cloud Assembly.