Vous pouvez créer ou charger des fichiers d'état et des données de Pillar dans les espaces de travail Serveur de fichiers et Pillar de SaltStack Config. Si vous ne souhaitez pas utiliser le serveur de fichiers, SaltStack Config prend également en charge la connexion à un référentiel externe (tel qu'un référentiel Git) dans lequel vous pouvez enregistrer vos fichiers d'état et les données de Pillar.

Présentation des fichiers d'état

Au lieu de configurer manuellement chaque nœud ou application successivement, vous pouvez utiliser le système de gestion de l'état de SaltStack Config pour créer des fichiers d'état que vous pouvez appliquer simultanément à de nombreux nœuds. Ces fichiers d'état peuvent inclure un ensemble d'instructions qui indiquent à SaltStack Config quelles opérations doivent être exécutées sur le nœud et dans quel ordre. Ils peuvent également expliquer quels fichiers de configuration ou paramètres doivent être appliqués.

Après avoir écrit ou modifié un fichier d'état, vous pouvez exécuter automatiquement ces fichiers d'état et les appliquer à plusieurs nœuds à la fois. Vous pouvez cibler des nœuds en fonction des propriétés inhérentes de chaque nœud (telles que son système d'exploitation) ou en fonction d'étiquettes personnalisées que vous définissez. Consultez Création de cibles pour plus d'informations.

Le système de gestion de l'état garantit également que chaque nœud est configuré correctement et aussi efficacement que possible. En cas de dérive de configuration, SaltStack Config peut replacer les nœuds et les applications dans leur état de configuration conforme. Si une configuration doit être modifiée, SaltStack Config peut déployer rapidement ces modifications sur les nœuds affectés.

Exemple de fichier d'état

Les fichiers d'état sont généralement écrits en YAML et Jinga, mais d'autres formats tels que JSON sont compatibles avec Salt. Un fichier d'état standard peut avoir la forme suivante :

install_apache:
  pkg.installed:
    - name: httpd
    
ensure_service_running:
  service.running:
    - name: httpd
    - watch:
      - pkg: install_apache
      
default_html_page:
  file.managed:
    - name: /var/www/html/index.html
    - source: salt://apache/index.html
Ce fichier d'état comporte trois étapes qui exécutent trois modules d'exécution Salt différents. Lorsque ce fichier d'état est appliqué à un minion, SaltStack Config effectue les actions suivantes :
  • Installe Apache (httpd) sur le minion.
  • Démarre le service Apache.
  • Déploie un exemple de page d’index HTML hébergée sur le minion.

Présentation des données de Pillar

Exemple de fichier Pillar dans l'espace de travail Serveur de fichiers

Note : Il est recommandé de réserver les données de Pillar pour les informations sensibles.
Les Pillars sont des structures de données stockées sur le master Salt et transmises à un ou plusieurs minions autorisés à accéder à ces données. Les données de Pillar ont deux cas d'utilisation principaux :
  • Pillar peut limiter l'accès des utilisateurs aux données privées et sensibles telles que les mots de passe et les paramètres de configuration. Par exemple, vous pouvez utiliser des colonnes pour permettre à un utilisateur d’exécuter un travail qui nécessite une authentification à un service externe sans accéder lui-même à ces informations d’identification d’authentification. Dans ce cas, vous attribuez à l'utilisateur l'accès à la tâche et à la cible données, mais pas au Pillar contenant des détails d'authentification sensibles.
  • Un Pillar peut envoyer des données qui changent en fonction du contexte ou du minion qui demande des données. Par exemple, vous pouvez attribuer différents mots de passe à différents minions et stocker tous les mots de passe dans un fichier Pillar unique. Ensuite, vous pouvez écrire un fichier d'état qui demande au minion de rechercher son mot de passe unique dans le fichier sans avoir à créer plusieurs fichiers ou à stocker des mots de passe dans plusieurs emplacements.

Les données stockées dans le magasin de Pillar SaltStack Config sont chiffrées à l'aide de la clé de chiffrement RaaS associée à l'instance spécifique de SaltStack Config. Par exemple, « /etc/raas/pki/.raas.key ». Une fois que les données de Pillar sont définies dans l'interface utilisateur de SaltStack Config, elles sont chiffrées avec cette clé et stockées dans la base de données PostgreSQL. Cette clé est également utilisée pour déchiffrer les données à afficher dans l'interface utilisateur de SaltStack Config.

Exemple de fichier Pillar

Les fichiers Pillar sont généralement écrits en YAML et Jinga, mais d'autres formats tels que JSON sont compatibles avec Salt. Les données de Pillar sont stockées sous la forme d'un dictionnaire et utilisent des paires clé-valeur pour rechercher des valeurs. Un fichier Pillar standard peut avoir la forme suivante :

 pillar1: value
 pillar2:
   - value
   - value
 pillar3:
   sub_key:
     - value
     - value

Cet exemple présente trois méthodes différentes pour formater vos données de Pillar. La syntaxe que vous choisissez d'utiliser dépend de vos besoins et du type de données que vous devez stocker.

Avant de commencer

Comme SaltStack Config est optimisé par Salt, il est utile de disposer d'une connaissance de base de Salt et des concepts associés à ces fonctionnalités. Le tableau suivant répertorie les ressources utiles pour obtenir plus d'informations :

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

Notions de base de l'utilisation de Salt

États Salt

Données du Pillar

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

Après avoir défini les données de Pillar, vous pouvez les attribuer à un groupe de systèmes de minion en cliquant sur Mettre à jour les cibles, en sélectionnant le groupe cible, puis en cliquant sur Enregistrer.

Attacher des données de Pillar à des cibles dans SaltStack Config

Lorsque les données de Pillar sont attribuées à un système cible spécifique et incluses dans des fichiers d'état, elles sont traitées par le maître pour chaque système de minion et chiffrées avec une clé AES distincte pour chaque minion. Cette clé permet aux données de Pillar d'être transmises au système cible lors de l'exécution d'un programme d'état ou de fichier d'orchestration.

Ajout de fichiers d'état au serveur de fichiers

Pour ajouter un fichier d'état au serveur de fichiers afin qu'il puisse être utilisé dans les tâches, procédez comme suit :

  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. Facultatif : il est recommandé d'écrire un brouillon approximatif du fichier d'état dans votre éditeur de code préféré et de vérifier que le fichier d'état utilise une syntaxe appropriée à l'aide d'un utilitaire Lint.
  3. Dans l'interface utilisateur de SaltStack Config, cliquez sur Configuration > Serveur de fichiers dans le menu latéral pour ouvrir l'espace de travail Serveur de fichiers.
  4. Lorsque vous ouvrez l'espace de travail Serveur de fichiers pour la première fois, vous voyez le répertoire de fichiers et un nouveau fichier vide. Utilisez ce fichier vide pour créer un fichier d’état ou pour copier votre fichier d’état à partir de votre éditeur de code.Fichier d'état vide dans l'espace de travail Serveur de fichiers dans SaltStack Config
  5. Cliquez sur le menu Saltenv et sélectionnez l'environnement dans lequel vous souhaitez stocker le fichier d'état. En cas de doute sur l'environnement à sélectionner, utilisez base.
  6. Dans le champ Nom du chemin d'accès, entrez le chemin d'accès au fichier et le nom de fichier en terminant par l'extension de fichier .sls. Par exemple, /my-directory/my-state-file.sls.
  7. Dans le corps du fichier, écrivez ou copiez le code de votre fichier d’état. Par exemple : code de fichier d'état dans un fichier d'état dans l'espace de travail Serveur de fichiers
  8. Enregistrez le fichier d'état et confirmez que le nouveau fichier apparaît dans le répertoire du serveur de fichiers.

Ajout de données de Pillar à un master Salt

Bien qu'il soit possible d'utiliser l'espace de travail Pillar de SaltStack Config pour ajouter des données de Pillar au master Salt, il peut être plus facile d'ajouter directement les données de Pillar au master Salt. Pour ajouter les données de Pillar afin qu'elles puissent être référencées dans des fichiers d'état ou attribuées à des cibles, vous pouvez utiliser l'une des deux méthodes suivantes :

  • Connectez-vous via SSH au master Salt et ajoutez le fichier Pillar au répertoire du master en utilisant les procédures Salt standard pour ajouter des fichiers à un master. Pour plus d'informations, reportez-vous aux sections Pillar et Description détaillée des Pillars.
  • Créez une tâche dans l'interface utilisateur de SaltStack Config pour ajouter les données de Pillar au master Salt à l'aide de la commande salt-run, qui utilise la fonctionnalité de l'exécuteur Salt. Consultez Comment puis-je créer des tâches ? pour plus d'informations.

Étapes suivantes

Après avoir créé des fichiers d'état et des données de Pillar accessibles par les minions, vous pouvez référencer ces fichiers dans les tâches que vous créez dans SaltStack Config. Consultez Comment puis-je créer des tâches ? pour plus d'informations.