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 SaltStack Config.

    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_VM_1".id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe
          additionalMinionParams:
            grains:
              roles:
                - webserver
                - database   
           additionalAuthParams:
             profile:
                tmp_dir: /var/run

    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 de 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é comme saltEnvironment.
    variables Les variables définies dans le modèle de cloud sont transmises sous forme de Pillar à des états Salt. Dans cet exemple, la variable user est transmise au fichier doe.sls.

    Les variables peuvent être référencées dans les fichiers d'état à l'aide de Jinja, comme le montre l'exemple suivant :

    {% set username = pillar.get('user', 'random') %}
    
    friend:
      user.present:
        - names:
          -  {{username}}

    Le fichier doe.sls garantit qu'un utilisateur, représenté par la variable user dans le modèle de cloud, existe. Si la variable n'est pas spécifiée dans le modèle de cloud, elle garantit que l'utilisateur random est présent.

    additionalMinionParams Utilisez cette propriété pour transmettre des paramètres de configuration supplémentaires pour le minion. Ces paramètres doivent être transmis en tant que dictionnaire :

    • grains : utilisez cette propriété pour attribuer des grains Salt personnalisés au minion. Une ou plusieurs paires key:value sont acceptées. Les valeurs peuvent être une chaîne, un tableau ou un mappage.

      Vous pouvez uniquement attribuer des données de grain personnalisées lors du provisionnement d'une nouvelle machine. Vous ne pouvez pas attribuer de données de grain personnalisées lors de l'exécution de l'action de jour 2 Attacher une ressource SaltStack ou Mettre à jour la configuration Salt.

    additionalAuthParams Utilisez cette propriété pour transmettre des paramètres d'autorisation supplémentaires pour le provisionnement du minion qui sera fusionné/remplacé par la configuration salt-cloud par défaut. Ces paramètres doivent être transmis en tant que dictionnaire.

    Une ou plusieurs paires key:value sont acceptées sous forme de chaîne, de tableau ou de mappage. Pour voir un exemple d'utilisation de cette propriété, consultez la section Cas d'utilisation : déploiement de minions à l'aide de l'API dans un environnement Linux.

    Note : Vous ne pouvez pas attribuer de paramètres d'autorisation supplémentaires lors de l'exécution de l'action de jour 2 Mettre à jour la configuration de Salt.
  6. Ajoutez les propriétés remoteAccess à la machine qui héberge le minion Salt.

    Si vous déployez un minion Salt sur une machine Windows, la clé authentication peut avoir la valeur usernamePassword ou generatedPublicPrivateKey. publicPrivateKey n'est pas pris en charge.

    Si vous déployez un minion Salt sur une machine Windows, la clé authentication doit avoir la valeur usernamePassword..

     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-Network:
        type: Cloud.Network
        properties:
          networkType: existing 
      Cloud_VM_1:
        type: Cloud.vSphere.Machine
        properties:
          image: ubuntu
          flavor: small
          remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
          networks:
            - network: ${resource["Cloud-Network"].id}
      Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource["Cloud-VM-1"].id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe
          additionalMinionParams:
            grains:
              roles:
                - webserver
                - database
  8. Testez et déployez le modèle de cloud.
    Si le déploiement de votre minion échoue, consultez Dépanner les déploiements de minion.
  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 de Configuration Salt 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 de 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 salt-vm-010.
    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

Afficher les données de grain de Salt

Une fois que vous avez terminé le déploiement d'un minion Salt sur vos machines virtuelles, vous pouvez afficher les grains du minion dans Cloud Assembly.

Les grains Salt sont collectés pour le système d'exploitation, le nom de domaine, l'adresse IP, le noyau, le type de système d'exploitation et la mémoire du minion, ainsi que de nombreuses autres propriétés système. Si vous n'avez pas accès à SaltStack Config ou si vous souhaitez afficher rapidement les données de grain sans quitter l'interface utilisateur de Cloud Assembly, vous pouvez utiliser l'onglet Topologie pour afficher les données de grain. Pour en savoir plus sur les données de grain, reportez-vous à la section Grains Salt.

Pour afficher les grains d'un minion :

  1. Dans Cloud Assembly, sélectionnez Ressources > Déploiements et localisez votre déploiement.
  2. Dans l'onglet Topologie, sélectionnez la machine virtuelle attachée à la ressource SaltStack Config.
  3. Localisez la section Configuration de Salt dans le volet de droite et faites défiler la liste vers le bas pour afficher la liste des données de grain.Capture d'écran des données de grain dans Cloud Assembly

Les données de grain d'un minion sont récupérées après le déploiement du minion. Pour voir quand les données de grain ont été mises à jour pour la dernière fois, vous pouvez faire défiler l'écran jusqu'au bas de la section Configuration Salt.

Capture d'écran des dernières données de grain mises à jour dans Cloud Assembly
Note : Les données de grain ne sont mises à jour que si vous exécutez l'action de jour 2 Mettre à jour la configuration Salt sur une ressource SaltStack Config. Elles ne sont pas mises à jour si des modifications sont apportées en dehors de Cloud Assembly.