En tant qu'administrateur système, vous pouvez créer des tâches dans SaltStack Config pour lancer des exécutions à distance, appliquer des états, démarrer des exécuteurs Salt, etc. Les tâches sont généralement destinées aux opérations système qui doivent être automatisées et exécutées plusieurs fois.

Avant de commencer

Les tâches dans SaltStack Config intègrent généralement l'un des modules d'exécution ou des modules d'état qui ont été développés par la communauté open source Salt. Pour cette raison vous devez d'abord vous familiariser avec certains des concepts de base du système Salt et pouvoir effectuer des tâches administratives courantes à l'aide des modules d'exécution et d'état disponibles.

Pour plus d'informations sur… Reportez-vous à la section…

Notions de base de l'utilisation de Salt

États Salt

Modules d'exécution et d'état Salt

Création de tâches

Pour créer une tâche :

  1. Recherchez les modules d'exécution ou d'état Salt pouvant vous aider à obtenir le résultat souhaité. Lorsque vous trouvez le module Salt répondant à vos besoins, lisez la documentation du module pour vous assurer que vous connaissez bien les paramètres du module et autres conditions requises.
  2. Si votre tâche utilise des modules d'état Salt, créez un fichier d'état dans le serveur de fichiers SaltStack Config. Consultez Création de fichiers d'état et de données de Pillar pour plus d'informations.
  3. Créez une tâche.
    1. Cliquez sur Configuration > Tâches dans le menu latéral pour ouvrir l'espace de travail Tâches.
    2. Cliquez sur le bouton Créer une tâche.
      Note :

      Si le bouton Créer une tâche ne s'affiche pas, vous n'avez pas l'autorisation nécessaire pour créer des tâches. Contactez votre administrateur vRealize Automation pour obtenir l'accès ou pour créer cette tâche en votre nom afin de pouvoir exécuter ce didacticiel.

    3. Entrez les détails de la nouvelle tâche.
      Champ Valeur

      Nom

      Donnez à la tâche un nom descriptif qui indique brièvement l'objet de la tâche ou sa nature. Par exemple, « Configurer les paramètres de pare-feu Windows ».

      Description

      Ajoutez une description qui indique aux autres utilisateurs l'objectif de cette tâche, par exemple « Ouvre le pare-feu pour le port 445 sur les nœuds Windows ».

      Commande

      • Sélectionnez salt pour les tâches qui s'exécutent sur des minions.
      • Sélectionnez salt-run pour les tâches qui s'exécutent sur le master Salt. Les tâches salt-run sont également appelées exécuteurs Salt. Les exécuteurs Salt sont des modules utilisés pour exécuter des fonctions pratiques sur le master Salt. Vous pouvez utiliser les exécuteurs Salt pour exécuter une orchestration, alimenter des minions à distance, appeler des Webhooks, etc. Ils sont utiles pour exécuter des tâches de manière centralisée ou à partir d'un point de départ central. Par exemple, vous pouvez appliquer un highstate à tous les minions associés à un master Salt donné.

      En cas de doute sur l'option à sélectionner, utilisez salt, car la plupart des tâches s'exécutent sur des minions.

      Remarque : si vous décidez de modifier la commande, une nouvelle liste de fonctions s'affiche.

      Cibles

      Facultatif : une cible est un groupe de minions, dans un ou plusieurs masters Salt, à qui s'applique la commande Salt d'une tâche. Vous pouvez créer des cibles pour vos tâches dans l'espace de travail Cibles. Consultez Création de cibles pour plus d'informations.

      Si vous souhaitez que les cibles soient sélectionnées lors de l'exécution de la tâche, ne sélectionnez rien dans ce menu. Si vous laissez ce champ vide, vous pourrez sélectionner la cible lors de l'exécution de la tâche. Cependant, la définition de la cible d'une tâche empêche également cette tâche de s'exécuter sur les nœuds sur lesquels elle ne doit pas être exécutée.

      Fonction

      Sélectionnez le module Salt à exécuter lorsque vous exécutez cette tâche. Cliquez sur ce champ et commencez à saisir le nom du module Salt que vous souhaitez sélectionner ou sélectionnez-le dans le menu. Vous pouvez également entrer votre propre valeur si le module que vous souhaitez utiliser ne figure pas dans la liste déroulante.

      Si cette tâche est destinée à appliquer un fichier d'état Salt à un minion, utilisez le module state.apply. Consultez state.apply pour plus d'informations.

      Pour obtenir la liste complète des modules Salt, consultez Index de modules Salt. Reportez-vous également à la section Exemples de tâches courantes pour obtenir un tableau décrivant certains des modules les plus couramment utilisés.

      Arguments

      Vous pouvez utiliser le champ Arguments pour transmettre args et kwargs au module Salt.

      Chaque ligne du champ Arguments représente un argument. Par exemple, si vous utilisez le module file.copy, vous pouvez transmettre path/to/src/ et path/to/dst au module.

      Vous pouvez également utiliser des arguments de mots clés. Par exemple, vous pouvez transmettre src=path/to/src/ et dst=path/to/dst/ au module file.copy.

      Pour obtenir la liste complète des modules Salt, consultez Index de modules Salt.

      Environnements

      Ce champ n'est disponible que lorsqu'il s'applique à la fonction choisie telle que state.apply, state.highstate, etc.

      Sélectionnez votre environnement Salt souhaité dans le menu ou entrez-le s'il ne figure pas dans la liste. Par exemple, si vous appliquez un fichier d'état depuis l'environnement de base, sélectionnez base dans le menu.

      États

      Ce champ n'est disponible que lorsqu'il s'applique à la fonction choisie telle que state.apply.

      Sélectionnez le fichier d'état que vous souhaitez appliquer dans le menu ou entrez-le s'il ne figure pas dans la liste.

      Remplacement de Pillar

      Ce champ n'est disponible que lorsqu'il s'applique à la fonction choisie telle que state.apply. Il accepte les données de Pillar au format JSON. Les données de Pillar sont enregistrées dans la définition de la tâche et transmises à la fonction du module lors de l'exécution.

      L'utilisation de Remplacement de Pillar dans SaltStack Config est semblable à l'envoi de valeurs de Pillar personnalisées via l'interface de ligne de commande. Les valeurs transmises de cette manière remplacent les valeurs de Pillar existantes définies à l'aide de pillar_roots ou d'une source de Pillar externe. Les valeurs de Pillar qui ne sont pas incluses dans kwarg ne sont pas remplacées.

      Pour plus d'informations sur les données de Pillar, consultez Création de fichiers d'état et de données de Pillar.

      Capture d'écran d'une tâche dont tous les champs sont remplis dans SaltStack Config
    4. Facultatif : vérifiez l'option Exécuter comme test (exécution de test) pour exécuter une tâche de test et générer un retour de tâche simulé. Exécuter comme test (exécution de test) est disponible uniquement pour certaines fonctions, telles que state.apply. Si vous sélectionnez Test, la tâche s'exécute en mode test et aucune modification n'est apportée. Si cette option n'est pas sélectionnée, vous pouvez choisir d'exécuter la tâche en tant que test ultérieurement lorsque vous exécutez la tâche.
    5. Facultatif : ajoutez des entrées de tâche à votre tâche. Consultez Ajout d'entrées de tâche pour plus d'informations.
  4. Enregistrez la tâche et confirmez qu'elle figure dans l'espace de travail Tâches.

Ajout d'entrées de tâche

En tant qu'administrateur système, vous pouvez utiliser des entrées de tâche pour configurer des arguments ou des variables que d'autres utilisateurs peuvent modifier lors de l'exécution. Plutôt que de créer plusieurs tâches pour différents cas d'utilisation, vous pouvez créer des tâches à usage général, puis définir des entrées de tâche facultatives et requises pour vos utilisateurs. Ces tâches à usage général peuvent vous aider à réduire le nombre de demandes de création de tâches que vous recevez.

L'un des avantages de l'utilisation d'entrées de tâche est que vous pouvez limiter l'accès aux types d'arguments ou de variables que d'autres administrateurs peuvent transmettre à la fonction lors de l'exécution de la tâche tout en leur permettant d'effectuer les tâches nécessaires pour effectuer d'autres tâches dans le cadre de leurs responsabilités. Ainsi, des entrées de tâche clairement définies garantissent que votre organisation applique les meilleures pratiques de sécurité standard, telles que le principe du moindre privilège.

Avant de commencer

Déterminez les entrées de tâche que les utilisateurs doivent modifier

Avant de définir vos entrées de tâche, il est important de déterminer celles que vous souhaitez que les utilisateurs voient et modifient lors de l'exécution. N'oubliez pas qu'une personne autre que vous peut exécuter cette tâche et que la manière dont les entrées de tâche s'affichent varie en fonction de leur configuration. Prenez du temps pour choisir les entrées de tâche que ces utilisateurs voient et modifient au moment de l'exécution.

Par exemple, vous pouvez créer une tâche qui applique des paramètres de configuration à des serveurs en fonction de l'objet ou du rôle du serveur. Vous pouvez éventuellement créer une tâche générique qui applique des paramètres de configuration à partir d'un fichier d'état, puis créer des entrées de tâche qui permettent à un administrateur de sélectionner le fichier d'état appliqué à partir d'une liste dans le menu déroulant. Lors de l'exécution de la tâche, l'utilisateur voit le menu déroulant avec une liste des fichiers d'état possibles que vous avez définis et rien d'autre.

Ainsi, les entrées de tâche donnent plus de contrôle aux administrateurs système sur ce que vous autorisez les autres administrateurs à voir et à modifier lors de l'exécution de la tâche. Vous pouvez offrir de la flexibilité tout en veillant à ce que les autres utilisateurs puissent uniquement modifier ce qui est autorisé dans leur champ de responsabilité ou d'autorisation.

Pour définir des entrées de tâche :
  1. Cliquez sur Configuration > Tâches dans le menu latéral pour ouvrir l'espace de travail Tâches.
  2. Sélectionnez une tâche pour ouvrir ses détails.
  3. Faites défiler l'écran vers le bas jusqu'à la section Entrées de tâche de la page de détails de la tâche.Capture d'écran d'une liste d'entrées de tâche
  4. Cliquez sur le bouton Ajouter une entrée de tâche.
  5. Entrez les détails de l'entrée de tâche.
    Champ Valeur
    Nom complet

    Définissez le nom de l'entrée de tâche.

    Lorsqu'un utilisateur voit cette entrée de tâche lors de l'exécution, le texte que vous avez entré comme Nom complet est l'indicateur le plus important de la fonction et de l'objet de l'entrée.

    Choisissez un nom court, précis et descriptif, tel que « Service à redémarrer ».

    Type d'entrée

    Définissez le type d'entrée de tâche. Il existe quatre types d'entrée : chaîne, nombre, booléen et sélection.

    • Utilisez le type d'entrée chaîne si vous souhaitez que les utilisateurs fournissent une valeur.
    • Utilisez le type nombre si vous souhaitez que les utilisateurs spécifient une quantité ou une dimension.
    • Utilisez booléen pour les scénarios vrai ou faux.
    • Utilisez sélection si vous souhaitez que les utilisateurs choisissent parmi une liste de valeurs. Les valeurs d'une liste sélection peuvent être des chaînes, des nombres ou des valeurs booléennes. Par exemple, le type d'entrée de la tâche « Service à redémarrer » peut être une liste de chaînes sélection. Par exemple, httpd, sshd ou mysqld.

    Avant de choisir un type d'entrée, consultez Index de modules Salt. Le type d'entrée est déterminé par le module Salt que la tâche utilise et le paramètre auquel correspond le type d'entrée dans le module Salt. Si vous choisissez un type d'entrée incorrect, la tâche va échouer.

    Afficher lors de l'exécution de la tâche

    Autorisez les utilisateurs à voir et à modifier les valeurs lors de l'exécution de la tâche.

    Si vous basculez ce paramètre, le champ Texte d'aide s'affiche dans la fenêtre Modifier l'entrée de la tâche.

    Si vous ne parvenez pas à trouver un Nom complet bref et précis, utilisez le champ Texte d'aide pour fournir des informations supplémentaires sur l'entrée de tâche. Par exemple, vous pouvez décrire une situation qui nécessiterait qu'un utilisateur fournisse une valeur.

    Ce texte d'aide s'affiche sous une info-bulle d'aide (?) en regard du nom de l'entrée de tâche lorsqu'un utilisateur exécute la tâche.

    Mot clé

    Fournissez le paramètre ou l'argument transmis à la fonction de module en cours d'exécution. Pour plus d'informations sur les fonctions du module, consultez Index de modules Salt.

    Remarque : les entrées de tâche ne prennent pas en charge les arguments de position non-mots clés. Elles peuvent être spécifiées dans la tâche sous Arguments, mais elles ne peuvent pas être fournies lors de l'exécution de la tâche.

    Valeur par défaut/valeur

    Si l'option Afficher lors de l'exécution de la tâche est activée, vous pouvez utiliser le champ Valeur de défaut facultatif pour fournir une valeur par défaut pour l'entrée de tâche. Les utilisateurs peuvent transmettre la valeur par défaut à la fonction de module ou la modifier lors de l'exécution.

    Déterminez si la fourniture d'une valeur par défaut à vos utilisateurs sera utile. La fourniture d'une valeur par défaut peut aider vos utilisateurs à gagner du temps lors de l'exécution des tâches, mais cela n'est pas nécessaire dans certains cas. Par exemple, une entrée de tâche nommée « Centre de données » peut ne pas nécessiter de valeur par défaut, car la valeur varie.

    Si l'option Afficher lors de l'exécution de la tâche est désactivée, vous pouvez utiliser le champ Valeur pour transmettre une valeur par défaut à la fonction de module. Les utilisateurs ne pourront ni voir ni modifier la valeur.

    Requise pour l'entrée de la tâche

    Si l'option Afficher lors de l'exécution de la tâche est activée, vous pouvez imposer que les utilisateurs fournissent une valeur pour l'entrée de tâche.

    Déterminez s'il sera utile d'imposer aux utilisateurs la fourniture d'une valeur. Lorsque vous concevez vos tâches, pensez à ce qui peut se produire si les utilisateurs ne fournissent pas de valeur. Si la tâche peut échouer sans valeur, exigez-la lors de l'exécution. Si la tâche peut s'exécuter sans valeur, rendez celle-ci facultative.

    Si possible, utilisez le champ Texte d'aide pour aider les utilisateurs à comprendre la fonction de l'entrée de tâche.

  6. Enregistrez l'entrée de tâche et confirmez qu'elle s'affiche dans la liste d'entrées de tâche sur la page Détails de tâche.
    Note :

    D'autres champs peuvent figurer dans la liste d'entrées de tâche, telles que Environnements, États ou Test, selon la fonction de module que vous utilisez. Si vous souhaitez que les utilisateurs voient ces entrées lors de l'exécution, cliquez sur l'icône en forme de crayon en regard du mot clé pour modifier l'entrée de tâche et basculez l'option Afficher lors de l'exécution de la tâche.

  7. Enregistrez la tâche.
  8. Pour confirmer que vos entrées de tâche fonctionnent comme prévu. connectez-vous à SaltStack Config en tant qu'utilisateur pouvant exécuter des tâches avec un niveau d'autorisation inférieur ou un rôle disposant de privilèges d'accès inférieurs.

    Si une entrée de tâche est manquante, si la tâche échoue ou si l'entrée de tâche nécessite des arguments ou des descriptions supplémentaires, effectuez les réglages nécessaires à la tâche avant d'autoriser les utilisateurs à l'exécuter.

Étapes suivantes

Une fois que vous avez créé votre tâche, vous pouvez désormais l'exécuter de façon ponctuelle ou selon une planification régulière. Pour plus d'informations, voir :