Vous pouvez utiliser des tâches dans SaltStack Config pour simplifier et automatiser les tâches de gestion de la configuration et les procédures courantes que vous ou votre équipe effectuez régulièrement.

Présentation des tâches dans SaltStack Config

Les tâches sont utilisées pour exécuter des tâches d'exécution à distance ou pour appliquer des fichiers d'état aux nœuds (minions) qui sont gérés par SaltStack Config. 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. Vous pouvez créer des tâches pour automatiser les tâches courantes que vous effectuez régulièrement lorsque vous provisionnez, configurez, déployez, surveillez et gérez des nœuds dans votre système. Vous pouvez également configurer des tâches pour qu'elles s'exécutent selon une planification régulière (par exemple, des tâches qui recherchent régulièrement les dérives de configuration et les empêchent).

Vous pouvez enregistrer les tâches fréquemment utilisées et créer progressivement une large bibliothèque de tâches pour une réutilisation ultérieure par votre équipe. L’utilisation de tâches pour la gestion de la configuration réduit le temps que votre équipe passe manuellement à installer, configurer, déployer, mettre à jour et gérer les nœuds dans votre système.

Exemples de tâches courantes

Pour une introduction pratique au fonctionnement des tâches et pour obtenir des exemples pratiques de tâches types, reportez-vous aux didacticiels suivants du Guide de démarrage de SaltStack Config :

Vous pouvez exécuter potentiellement des milliers de types de tâches différentes dans SaltStack Config selon les objectifs recherchés. Après avoir identifié la tâche que vous souhaitez accomplir ou le problème que vous devez résoudre, vous pouvez rechercher les modules Salt disponibles pour trouver ceux qui exécutent la fonction dont vous avez besoin.

Les tâches dans SaltStack Config intègrent généralement un ou plusieurs modules d'exécution ou modules d'état qui ont été développés par la communauté open source Salt. Les modules d'exécution Salt sont des petits programmes contenant du code Python qui peuvent s'exécuter sur un minion Salt et effectuer une tâche spécifique. Les modules d'état Salt sont semblables aux modules d'exécution. Les modules d'état Salt sont des programmes contenant du code Python qui peut être utilisé dans des fichiers d'état Salt pour gérer l'application d'un état à un minion.

Le tableau suivant présente certains des modules d'exécution et d'état les plus couramment utilisés :

Module Salt Description

state.apply

Module qui applique un fichier d'état à un minion. Lorsque le fichier d'état s'exécute, il vérifie si le minion est dans l'état souhaité actuel. Si le minion n'est pas dans l'état souhaité actuel, il exécute les commandes et les modules pour placer ce minion dans l'état souhaité.

Un état élevé applique tous les états définis dans le fichier supérieur. Pour plus d'informations, reportez-vous à la section state.highstate.

pkg.installed

Module d'état (ce qui signifie qu'il est utilisé dans les fichiers d'état) qui vérifie si la version correcte d'un module est installée. Si elle n'est pas installée, il installe un module et s'assure qu'il s'agit de la version correcte de celui-ci. Pour plus d'informations sur l'installation de modules avec certains systèmes d'exploitation, reportez-vous à la section salt.states.pkg.

file.managed

Module d'état (ce qui signifie qu'il est utilisé dans les fichiers d'état) qui télécharge un fichier depuis le master Salt et place ce fichier sur les minions ciblés pour une utilisation ultérieure. Pour plus d'informations sur la gestion des fichiers avec Salt, reportez-vous à la section salt.states.file.

service.running

Module d'état (ce qui signifie qu'il est utilisé dans les fichiers d'état) qui vérifie si un service est en cours d'exécution. Si le service n'est pas en cours d'exécution, il le démarre. Pour plus d'informations sur le démarrage ou le redémarrage des services avec Salt, reportez-vous à la section salt.states.service.

Pour obtenir une liste complète des modules d'exécution et d'état de Salt, reportez-vous à la section Index des modules Salt.

Si Salt ne dispose pas d'un module dont vous avez besoin, vous pouvez étendre Salt en écrivant vos propres modules personnalisés en Python. Si vous le souhaitez, vous pouvez également soumettre ce module en amont à Salt Project. La communauté Salt Project, officiellement sponsorisée par VMware, comprend plus de 3 000 contributeurs travaillant dans des rôles d'administration système et de services informatiques. La communauté Salt permet d'étendre Salt en créant divers modules d'exécution et d'état pour accomplir les tâches les plus courantes ou résoudre les problèmes les plus importants auxquels les administrateurs système sont confrontés.

Présentation du workflow des tâches

De manière générale, un administrateur système expérimenté crée, configure et enregistre les paramètres des tâches pour les réutiliser ultérieurement. Ainsi, l'administrateur senior peut autoriser un administrateur débutant à exécuter cette tâche sur tous les nœuds (cibles) auxquels l'administrateur débutant est autorisé à accéder. Lors de la création d'une tâche, l'administrateur senior définit les entrées de tâche, qui font référence aux paramètres ou variables spécifiques de la tâche que l'administrateur débutant peut modifier lors de l'exécution.

Par exemple, un administrateur système expérimenté peut créer une tâche qui crée et déploie une machine virtuelle et installe un ensemble de base d'applications ou de services sur cette machine. Cette tâche peut être exécutée chaque fois qu’une nouvelle machine virtuelle doit être déployée pour assurer que le même ensemble d’applications et de configurations est appliqué à chaque déploiement. Après avoir créé cette tâche de base, l'administrateur système senior peut autoriser un administrateur débutant à exécuter cette tâche sur les cibles (nœuds) auxquelles il est autorisé à accéder. À l'aide des contrôles d'accès basés sur les rôles (RBAC) dans SaltStack Config et guidé par le principe du moindre privilège, l'administrateur senior peut déterminer les tâches qu'un administrateur débutant peut exécuter et sur quels nœuds (minions).

La création et l'exécution de tâches est un processus en plusieurs étapes qui nécessite l'utilisation de différents outils et espaces de travail dans SaltStack Config. Le diagramme suivant fournit une vue d'ensemble du workflow global de la tâche :

Diagramme expliquant le workflow des tâches

Chaque étape est décrite dans les articles suivants :