Une fois que vous avez installé et intégré le service Automation Config, vous devez également installer, exécuter et enregistrer le service de minion Salt sur tous les nœuds que vous prévoyez de gérer à l'aide de Automation Config. Vous pouvez déployer le service de minion Salt sur vos nœuds en utilisant des modèles de cloud VMware Aria Automation ou en installant le service via Secure Shell (SSH).

Salt et sa relation à Automation Config

Automation Config s'exécute sur Salt, une infrastructure d'exécution à distance open source basée sur Python utilisée pour :

  • Gestion de la configuration
  • Automatisation
  • Provisionnement
  • Orchestration

Salt est la technologie qui sous-tend les fonctionnalités essentielles de Automation Config. Automation Config améliore et étend Salt, en fournissant des fonctionnalités supplémentaires qui améliorent la facilité d'utilisation.

Salt utilise le modèle contrôleur-client dans lequel un contrôleur émettra des commandes sur un client et le client exécutera la commande. Dans l'écosystème Salt, le contrôleur est un serveur qui exécute le service de master Salt. Il exécute des commandes sur un ou plusieurs minions Salt, qui sont des nœuds qui exécutent le service de minion Salt et qui sont enregistrés dans ce master particulier.

Salt peut également être décrit comme un modèle éditeur-abonné. Le master publie les tâches à exécuter et les minions s'y abonnent. Lorsqu'une tâche spécifique s'applique à ce minion, il l'exécute. Lorsqu'un minion termine l'exécution d'une tâche, il renvoie les données de la tâche au master.

Les minions sont des nœuds qui exécutent le service salt-minion. Le service écoute les commandes d'un master Salt et effectue les tâches demandées. Vous pouvez déployer des minions à partir de modèles de cloud VMware Aria Automation.

Avant de pouvoir commencer à utiliser Automation Config pour la gestion de la configuration, vous devez d'abord installer le service de minion Salt sur tous les nœuds que vous souhaitez gérer. Vous devez également enregistrer les minions en acceptant leurs clés et en les envoyant à Automation Config.

Avant de commencer

  • Installez et configurez Automation Config, et intégrez-le à VMware Aria Automation.
  • Les nœuds gérés par Automation Config doivent être en mesure d'accéder au master Salt et doivent résider sur le même réseau que le point d'intégration de Automation Config et le master Salt.
  • Les machines vSphere qui sont déployées sur un réseau privé doivent pouvoir établir une connexion avec l'intégration de Automation Config et le master Salt.

Installation du service de minion Salt via SSH

Le processus d'installation du service de minion Salt à l'aide de SSH dépend du système d'exploitation en cours d'exécution sur ces nœuds.

Après l'installation du service de minion Salt :
  1. Configurez chaque minion pour communiquer avec le master en créant un fichier master.conf dans le répertoire /etc/salt/minion.d. Dans ce fichier, fournissez l'adresse IP du master. Par exemple : master: 192.0.2.1
  2. Démarrez le service de minion :

    sudo systemctl enable salt-minion

    sudo systemctl start salt-minion

  3. Répétez les étapes précédentes pour tous les autres nœuds.

Après avoir configuré ces fichiers de minion pour qu'ils pointent vers le master Salt, acceptez les clés de minion dans le service Automation Config dans l'espace de travail de clés de minion.

Installation du service de minion Salt à l'aide de modèles de cloud VMware Aria Automation

Pour déployer le service de minion Salt à l'aide de modèles de cloud, vous devez avoir accès à cloud-init (Linux) ou Cloudbase-init (Windows), et savoir les utiliser. Pour ajouter des minions Salt au master Salt configuré pour l'intégration de Automation Config, la machine virtuelle de votre modèle de cloud doit prendre en charge cloud-init (Linux) ou Cloudbase-init (Windows).

Les sections suivantes expliquent comment déployer le service de minion Salt à l'aide de modèles de cloud.

Ajouter des minions au master Salt configuré pour VMware Aria Automation

Lorsque Automation Config est installé, une adresse IP de master Salt est spécifiée. Cette adresse IP de master est utilisée comme propriété masterAddress lorsque vous déployez des minions à partir d'un modèle de cloud VMware Aria Automation.

Vous installez et déployez des minions à l'aide de scripts cloud-init ou cloudbase-init dans un modèle de cloud ou un déploiement de VMware Aria Automation. Vous pouvez également utiliser un mappage d'image qui représente un script de configuration de cloud qui utilise l'un de ces formats. Pour ajouter des minions Salt au master Salt associé à une intégration de VMware Aria Automation Automation Config, la machine cible doit prendre en charge cloud-init (Linux) ou cloudbase-init (Windows). Le script de configuration cloud de VMware Aria Automation prend en charge les deux formats.

Configurez une ressource de machine dans le modèle de cloud avec une valeur minionId et une valeur cloudConfig, et reportez-vous au groupe de propriétés SaltStackConfiguration. Le groupe de propriétés SaltStackConfiguration est créé lors de l'installation et de la configuration du service Automation Config dans VMware Aria Suite Lifecycle. Il contient les propriétés masterAddress et masterFingerprint.

La valeur minionId doit correspondre à la valeur spécifiée pour /salt/minion_id de la machine dans la section cloudConfig du code du modèle de cloud.

Des exemples de code de modèle de cloud VMware Aria Automation basés sur Windows et Linux sont présentés ci-dessous. Notez que les scripts de configuration de cloud peuvent être spécifiés à l'aide de l'une des méthodes suivantes :
  • Image de VMware Aria Automation qui est appelée depuis le code du modèle de cloud
  • Script de configuration de cloud appelé à partir du code de modèle de cloud
  • Contenu du script de configuration cloud ajouté directement au code du modèle de cloud

Remarque : lorsque vous déployez un modèle de cloud qui contient des minions Salt, si le déploiement n'est pas visible dans Automation Assembler, vous pouvez afficher le déploiement en utilisant le service Automation Service Broker.

Exemple : déploiement basé sur Linux et cloud-init

Un exemple de configuration de modèle de cloud pour le déploiement de minions pour une machine Linux qui prend en charge cloud-init est présenté ci-dessous :
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}

Exemple : déploiement basé sur Windows et Cloudbase-init

Un exemple de configuration de modèle de cloud pour le déploiement de minions d'une machine Windows qui prend en charge cloudbase-init est présenté ci-dessous :
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

Configuration des commandes PowerShell

Vous configurez les commandes PowerShell dans la section cloudConfig de vos modèles de cloud.

Avant d'activer les commandes PowerShell, téléchargez le module de minion Salt sur le site Web du référentiel Salt. Ensuite, procédez comme suit :
  1. Installez le service minion Salt dans la machine virtuelle Windows.
  2. Mettez à jour la valeur du nom d'hôte du master Salt dans la configuration du minion.
  3. Mettez à jour la valeur d'empreinte digitale du master Salt dans la configuration du minion.
  4. Définissez minion_id sur le nom de la ressource de machine virtuelle qui sera utilisé pour accepter le minion sur le master Salt.
  5. Redémarrez le mini-on.

En savoir plus sur le déploiement de minions Salt

Pour découvrir d'autres méthodes d'utilisation intégrées de Automation Config pour déployer des minions Salt à partir d'un modèle de cloud VMware Aria Automation, reportez-vous à la section Assembler et secrets ABX (et comment les utiliser pour l'installation d'agents de minion Automation Config).

Pour plus d'informations sur la définition et le déploiement de modèles d'Automation Assembler en général, notamment si vous connaissez bien Config, mais n'avez aucune expérience avec Aria Automation, consultez Conception de vos déploiements Assembler.