Si vous avez intégré SaltStack Config à vRealize Automation, vous pouvez appliquer la ressource SaltStack Config pour installer les minions sur les machines virtuelles dans vos déploiements. Une fois le minion déployé, vous pouvez utiliser les puissantes fonctionnalités de gestion de configuration, de correction de dérive et de gestion de l'état de SaltStack Config pour gérer vos ressources.

Les minions sont des agents qui exécutent le service salt-minion. Le service s'abonne aux tâches publiées par un master Salt, qui est un serveur qui exécute le service master Salt. Lorsqu'une tâche spécifique s'applique à un minion, le minion exécute la tâche.

Il existe trois types de minions dans l'environnement Salt :
  • Agents qui exécutent le service salt-minion.
  • Minions de proxy qui gèrent les périphériques qui ne peuvent pas exécuter le service salt-minion.
  • Minions sans agent qui exécutent des commandes Salt sur un système sans installer de minion Salt.

Actuellement vous pouvez utiliser la ressource SaltStack Config pour déployer des minions et appliquer des fichiers d'état lorsque vous déployez des machines Linux et Windows. Pour ajouter ou mettre à jour des minions et des fichiers d'état sur des déploiements existants, vous pouvez exécuter l'action du jour 2 Attacher une ressource SaltStack. Pour plus d'informations sur l'action du jour 2, reportez-vous à la section Actions pouvant être exécutées sur les déploiements de Cloud Assembly.

Si vous avez utilisé la propriété saltConfiguration pour déployer des minions et des fichiers d'état en tant qu'action du jour 0, envisagez de mettre à jour vos modèles de cloud pour utiliser la ressource SaltStack Config. La propriété saltConfiguration est désormais obsolète. Vous pouvez toujours utiliser la propriété saltConfiguration dans vos modèles de cloud, mais les fonctionnalités d'intégration de SaltStack Config seront limitées.

L'action de jour 2 Appliquer la configuration Salt est toujours disponible pour les ressources qui utilisent la propriété saltConfiguration.

Avant de commencer

  1. Vérifiez que vous avez installé SaltStack Config et configuré l'intégration. Reportez-vous à la section Créer une intégration de SaltStack Config dans vRealize Automation.

    Pour vous familiariser avec le fonctionnement de SaltStack Config, y compris les concepts clés des minions, consultez Présentation de l'interface utilisateur de SaltStack.

  2. Dans SaltStack Config, vérifiez que la résolution du nom de domaine complet du minion au master fonctionne.
    1. Pour vérifier le nom de domaine complet sur le master Salt dans SaltStack Config, sélectionnez Minions > Tous les minons.
    2. Filtrez la colonne ID de minion sur la valeur saltmaster.
    3. Cliquez sur saltmaster pour afficher les détails.
    4. Vérifiez la valeur de nom de domaine complet.
  3. Si vous déployez des minions sur une machine Linux, vérifiez que les capacités SSH sont activées dans les images de vSphere que vous prévoyez de déployer avec un minion Salt. SSH est utilisé pour accéder à distance à la machine et déployer le minion.
  4. Si vous déployez des minions sur une machine Windows, reportez-vous à la section Déploiement de minions à l'aide de l'API (RaaS) dans un environnement Windows.

  5. Si vous déployez des serviteurs sur une machine virtuelle sur laquelle VMware Tools est installé et un serviteur Salt configuré, vérifiez que la clé de serviteur Salt de VMware Tools s'affiche sous l'onglet Accepté dans l'espace de travail Clés de serviteurs de SaltStack Config. Pour plus d'informations, reportez-vous à la section Activer le serviteur Salt à l'aide de VMware Tools.

    Note : Si la version du serviteur Salt de VMware Tools est antérieure. Le déploiement d'un serviteur sur la machine virtuelle ne met pas à niveau le master Salt vers la dernière version. Vous devez mettre à niveau votre master Salt manuellement. Pour plus d'informations, reportez-vous à la section Mettre à niveau le plug-in master.
  6. Vérifiez que vous pouvez attribuer des adresses IP aux machines que vous déployez.

    SaltStack Config nécessite que les machines disposent d'adresses IP. Utilisez les adresses IP de la plage CIDR d'adresses IP publiques pour le centre de données défini par logiciel (SDDC, Software-Defined Datacenter) où se trouve le master Salt.

  7. Vérifiez que le modèle de cloud auquel vous ajoutez le minion peut être déployé avant d'ajouter les propriétés de ressource SaltStack Config.
  8. Vérifiez que vous disposez des rôles de service suivants :
    1. Administrateur de Cloud Assembly
    2. Utilisateur de Cloud Assembly
    3. Administrateur de Service Broker

    Ces rôles de service sont requis pour utiliser la ressource SaltStack Config.

Ajouter la ressource SaltStack Config au modèle de cloud

En tant que développeur de modèle de cloud, vous pouvez ajouter des propriétés au fichier YAML qui installe le minion SaltStack Config lorsque vous déployez le modèle.

Les propriétés de base que vous ajoutez au modèle incluent l'accès à distance pour la machine que vous souhaitez déployer et les propriétés de configuration pour la ressource SaltStack Config. La procédure inclut uniquement les propriétés sélectionnées. Le fichier YAML inclut d'autres propriétés de la ressource SaltStack Config qui ne sont pas utilisées dans cet exemple. Pour plus d'informations, consultez le schéma.

Bien que cet exemple montre comment ajouter le nom d'utilisateur et le mot de passe pour les propriétés d'accès à distance, vous pouvez configurer une propriété secrète et l'ajouter au modèle. Pour obtenir un exemple, reportez-vous à la section Propriétés secrètes Cloud Assembly.

Procédure

  1. Dans Cloud Assembly, sélectionnez Conception > Modèles de cloud.
  2. Ouvrez un modèle existant.
  3. Localisez la ressource SaltStack Config et faites-la glisser vers le canevas.
  4. Attachez la ressource SaltStack Config à la machine sur laquelle le minion sera installé.
  5. Dans le volet de code, ajoutez des propriétés à la ressource Cloud_SaltStack_1.

    Vous n'êtes pas obligé d'inclure toutes les propriétés possibles. Les valeurs utilisées dans cet exemple sont expliquées dans le tableau.

    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

    Description des propriétés Cloud_SaltStack_1 utilisées dans cet exemple.

    Propriété Description
    masterId Dans l'exemple de schéma, la valeur masterId est saltstack_enterprise_installer. Vous pouvez définir les ID de master de SaltStack Config dans Administration > Clés de master.
    hosts La valeur de la propriété hosts est l'ID de la machine ou du cluster de machines sur lesquelles vous souhaitez installer le minion. Par défaut, le nom de la machine est transmis en tant qu'ID de minion dans SaltStack Config.

    Il est recommandé de choisir des noms de machine comportant 15 caractères ou moins, en particulier si vous déployez des minions sous Windows. Windows n'autorise pas les noms d'hôte de plus de 15 caractères.

    Si vous souhaitez définir une convention d'attribution de nom personnalisée pour les machines que vous souhaitez déployer, consultez Attribution de nom personnalisée pour les ressources déployées dans Cloud Assembly.

    saltEnvironment Dans cet exemple, sse est un emplacement de fichier pour les fichiers d'état. Vos fichiers d'état peuvent être enregistrés dans d'autres emplacements du serveur de fichiers de SaltStack Config dans Configuration > Serveur de fichiers.
    stateFiles Dans cet exemple, doe.sls est un fichier d'état par défaut fourni dans le répertoire du serveur de fichiers spécifié pour le paramètre saltEnvironment.
    variables Les variables sont les valeurs que le fichier d'état utilise. Dans cet exemple, le fichier doe.sls accepte une valeur user.
  6. Ajoutez les propriétés remoteAccess à la machine qui héberge le minion Salt.

    La valeur de la clé authentication doit être usernamePassword ou generatedPublicPrivateKey. publicPrivateKey n'est pas pris en charge.

     remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
  7. Vérifiez que votre fichier YAML inclut des propriétés semblables à l'exemple suivant.
    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. Testez et déployez le modèle de cloud.
    Si le déploiement de votre minion échoue, consultez Dépannage des déploiements de minions.
  9. Vérifiez les propriétés de configuration Salt pour la machine déployée.
    1. Sélectionnez Déploiements > Déploiements et ouvrez les détails du déploiement.
    2. Dans l'onglet Topologie, cliquez sur la machine et développez les propriétés dans le volet de droite.

      Capture d'écran de l'onglet Topologie avec les propriétés de configuration Salt développées dans le volet de droite. Les propriétés incluent l'ID du master, l'environnement Salt et les fichiers d'état.

Vérifiez le minion dans SaltStack Config

Après avoir installé le minion sur la machine virtuelle, localisez le minion et exécutez les tâches ou les commandes sur la ressource.

Procédure

  1. Pour ouvrir SaltStack Config, cliquez sur le menu des applications dans le coin supérieur droit, puis cliquez sur Console de Cloud Services.
  2. Cliquez sur la vignette du service SaltStack Config.
  3. Dans SaltStack Config, développez Clés de minion et cliquez sur Accepté.
  4. Dans la colonne ID de minion, cliquez sur l'icône de filtre et entrez le nom du minion.
    Le nom par défaut du minion est le nom d'hôte de la machine virtuelle. Dans cet exemple, l'ID de minion est vra-vm-05.
    Capture d'écran des clés de minion acceptées dans SaltStack Config.
  5. Pour afficher les détails, cliquez sur le nom du minion.
    Vous pouvez exécuter des tâches ou des commandes sur le minion. Par exemple, Exemple d'utilisation du disque. Cette tâche renvoie les statistiques d'utilisation du disque pour un minion.
    Capture d'écran de la page de détails de l'exemple d'ID de minion

Dépannage des déploiements de minions

Découvrez certaines erreurs courantes rencontrées par les utilisateurs lors du déploiement de minions Salt à l'aide de la ressource SaltStack Config ou de la propriété saltConfiguration.

Démarrage différé de l'hôte

Si les services Windows ou Linux sur l'hôte ne sont pas prêts après le déploiement de votre modèle de cloud, vous pouvez recevoir l'erreur « Échec du déploiement de minion et/ou de l'exécution du fichier d'état » dans Cloud Assembly.

Pour résoudre cette erreur, mettez à niveau le plug-in master vers la dernière version stable. Après avoir effectué la mise à niveau, vous pouvez activer un paramètre de configuration dans /etc/salt/master.d/raas.conf qui permet aux services Windows et Linux de s'activer avant de déployer le minon Salt.

Après la mise à niveau vers la dernière version du plug-in master, procédez comme suit pour retarder le démarrage de l'hôte :

  1. Vérifiez l'onglet Historique sur la page des détails du déploiement.
  2. Si le message d'erreur indique « Échec du déploiement du minion et/ou de l'exécution du fichier d'état », copiez l'ID de tâche (JID) et ouvrez SaltStack Config.
  3. Dans SaltStack Config, sélectionnez Activité > Terminée pour ouvrir les tâches terminées.
  4. Dans la colonne JID, cliquez sur l'icône de filtre et saisissez le JID.
  5. Cliquez sur le JID pour examiner la page de résultats de la tâche.
  6. Cliquez sur l'onglet Brut pour afficher la sortie brute de la tâche.

    Windows

    Si la dernière ligne de la sortie brute de la tâche contient « Impossible de se connecter à l'hôte : expiration du délai d'attente », vous devez ajouter ce paramètre de configuration à /etc/salt/master.d/raas.conf pour retarder le démarrage de 180 secondes :
    sseapi_win_minion_deploy_delay: 180

    Linux

    Si la dernière ligne de la sortie brute de la tâche contient « L'hôte distant n'est pas accessible à l'aide des informations d'identification fournies », vous devez ajouter ce paramètre de configuration sur /etc/salt/master.d/raas.conf pour retarder le démarrage de 90 secondes :
    sseapi_linux_minion_deploy_delay: 90
  7. Redémarrez le service du master Salt :
    systemctl restart salt-master
  8. Redéployez votre modèle de cloud.

    Si le déploiement a échoué, vous pouvez augmenter le paramètre de délai et redéployer le modèle.

Étape suivante

Pour utiliser les capacités de SaltStack Config pour gérer vos ressources, consultez la documentation de SaltStack Config.