Comment utiliser Vault pour protéger les données sensibles sensibles sur Ubuntu 16.04

introduction

Ansible Vault est une fonctionnalité qui permet aux utilisateurs de chiffrer des valeurs et des structures de données dans des projets Ansible. Cela permet de sécuriser toutes les données sensibles nécessaires au bon fonctionnement de Ansible, mais ne doit pas être visible publiquement, comme les mots de passe ou les clés privées. Ansible déchiffre automatiquement le contenu crypté par le coffre-fort au moment de l’exécution lorsque la clé est fournie.

Dans ce guide, nous montrerons comment utiliser Ansible Vault et explorerons certaines des pratiques recommandées pour en simplifier l’utilisation. Nous utiliserons un serveur Ubuntu 16.04 pour la machine de contrôle Ansible. Aucun hôte distant n’est nécessaire.

Conditions préalables

Pour suivre, vous aurez besoin d’un serveur Ubuntu 16.04 avec un utilisateur non root avec les privilèges + sudo +. Vous pouvez suivre notre Ubuntu 16.04 guide de configuration du serveur pour créer un utilisateur avec les autorisations appropriées.

Sur le serveur, vous devrez installer et configurer Ansible. Vous pouvez suivre notre tutoriel sur installation de Ansible sur Ubuntu 16.04 pour installer le logiciel approprié. paquets.

Continuez avec ce guide lorsque votre serveur est configuré avec les exigences ci-dessus.

Qu’est-ce que Ansible Vault?

Vault est un mécanisme qui permet d’intégrer de manière transparente le contenu crypté dans les flux de travail Ansible. Un utilitaire appelé + ansible-vault + sécurise les données confidentielles en les cryptant sur disque. Pour intégrer ces secrets aux données Ansible habituelles, les commandes + ansible + et + ansible-playbook +, permettant d’exécuter des tâches ad hoc et un classeur structuré, prennent en charge le déchiffrement du contenu chiffré par un coffre-fort au moment de l’exécution.

Vault est implémenté avec une granularité au niveau des fichiers, ce qui signifie que les fichiers sont entièrement cryptés ou non cryptés. Il utilise l’algorithme + AES256 + pour fournir un cryptage symétrique associé à un mot de passe fourni par l’utilisateur. Cela signifie que le même mot de passe est utilisé pour chiffrer et déchiffrer le contenu, ce qui est utile du point de vue de la convivialité. Ansible est capable d’identifier et de décrypter tous les fichiers cryptés par le coffre-fort trouvés lors de l’exécution d’un livre de lecture ou d’une tâche.

Bien que il existe des propositions pour changer cela, au moment d’écrire ces lignes, les utilisateurs ne peuvent donner qu’un seul mot de passe à Ansible. Cela signifie que chacun des fichiers cryptés impliqués doit partager un mot de passe.

Maintenant que vous comprenez un peu mieux ce qu’est Vault, nous pouvons commencer à discuter des outils fournis par Ansible et de la manière d’utiliser Vault avec des flux de travail existants.

Configuration de l’éditeur Ansible Vault

Avant d’utiliser la commande + ansible-vault +, il est judicieux de spécifier votre éditeur de texte préféré. Quelques commandes de Vault impliquent l’ouverture d’un éditeur pour manipuler le contenu d’un fichier crypté. Ansible examinera la variable d’environnement + EDITOR + pour trouver votre éditeur préféré. Si ceci n’est pas défini, il sera par défaut + vi +.

Si vous ne souhaitez pas modifier avec l’éditeur + vi`, vous devez définir la variable + EDITOR dans votre environnement.

Pour définir l’éditeur pour une commande individuelle, ajoutez-y l’affectation de la variable d’environnement, comme suit:

EDITOR= ansible-vault

Pour rendre cela persistant, ouvrez votre fichier + ~ / .bashrc +:

nano ~/.bashrc

Spécifiez votre éditeur préféré en ajoutant une affectation + EDITOR + à la fin du fichier:

~ / .bashrc

export EDITOR=

Enregistrez et fermez le fichier lorsque vous avez terminé.

Rechargez le fichier pour lire le changement dans la session en cours:

. ~/.bashrc

Affichez la variable + EDITOR + pour vérifier que votre paramètre a été appliqué:

echo $EDITOR
Output

Maintenant que vous avez défini votre éditeur préféré, nous pouvons discuter des opérations disponibles avec la commande + ansible-vault +.

Comment gérer des fichiers sensibles avec ansible-vault

La commande + ansible-vault + est l’interface principale de gestion du contenu chiffré dans Ansible. Cette commande sert initialement à chiffrer des fichiers, puis à afficher, éditer ou déchiffrer les données.

Création de nouveaux fichiers cryptés

Pour créer un nouveau fichier chiffré avec Vault, utilisez la commande + ansible-vault create +. Transmettez le nom du fichier que vous souhaitez créer. Par exemple, pour créer un fichier YAML chiffré appelé + vault.yml + pour stocker des variables sensibles, vous pouvez taper:

ansible-vault create

Vous serez invité à entrer et à confirmer un mot de passe:

OutputNew Vault password:
Confirm New Vault password:

Une fois votre mot de passe confirmé, Ansible ouvrira immédiatement une fenêtre d’édition dans laquelle vous pourrez saisir le contenu souhaité.

Pour tester la fonction de cryptage, entrez un texte de test:

vault.yml

Secret information

Ansible chiffrera le contenu lorsque vous fermerez le fichier. Si vous vérifiez le fichier, au lieu de voir les mots que vous avez tapés, vous verrez un bloc crypté:

cat
Output$ANSIBLE_VAULT;1.1;AES256
65316332393532313030636134643235316439336133363531303838376235376635373430336333
3963353630373161356638376361646338353763363434360a363138376163666265336433633664
30336233323664306434626363643731626536643833336638356661396364313666366231616261
3764656365313263620a383666383233626665376364323062393462373266663066366536306163
31643731343666353761633563633634326139396230313734333034653238303166

Ansible utilise certaines informations d’en-tête pour savoir comment gérer le fichier, suivies du contenu chiffré, qui s’affiche sous forme de nombres.

Crypter des fichiers existants

Si vous avez déjà un fichier que vous souhaitez chiffrer avec Vault, utilisez plutôt la commande + ansible-vault encrypt +.

Pour tester, nous pouvons créer un exemple de fichier en tapant:

echo 'unencrypted stuff' >

Maintenant, vous pouvez chiffrer le fichier existant en tapant:

ansible-vault encrypt

Encore une fois, vous serez invité à fournir et à confirmer un mot de passe. Ensuite, un message confirmera le cryptage:

OutputNew Vault password:
Confirm New Vault password:
Encryption successful

Au lieu d’ouvrir une fenêtre d’édition, + ansible-vault + chiffrera le contenu du fichier et l’écrira sur le disque, remplaçant ainsi la version non chiffrée.

Si nous vérifions le fichier, nous devrions voir un modèle crypté similaire:

cat
Output$ANSIBLE_VAULT;1.1;AES256
66633936653834616130346436353865303665396430383430353366616263323161393639393136
3737316539353434666438373035653132383434303338640a396635313062386464306132313834
34313336313338623537333332356231386438666565616537616538653465333431306638643961
3636663633363562320a613661313966376361396336383864656632376134353039663662666437
39393639343966363565636161316339643033393132626639303332373339376664

Comme vous pouvez le constater, Ansible chiffre le contenu existant de la même manière que les nouveaux fichiers.

Affichage des fichiers cryptés

Parfois, vous aurez peut-être besoin de référencer le contenu d’un fichier chiffré dans un coffre-fort sans avoir besoin de le modifier ni de l’écrire sans chiffrement dans le système de fichiers. La commande + ansible-vault view + alimente le contenu d’un fichier en sortie standard. Par défaut, cela signifie que le contenu est affiché dans le terminal.

Passez le fichier chiffré du coffre-fort à la commande:

ansible-vault view

On vous demandera le mot de passe du fichier. Après l’avoir entré avec succès, le contenu sera affiché:

OutputVault password:
Secret information

Comme vous pouvez le constater, l’invite de mot de passe est intégrée à la sortie du contenu du fichier. Gardez cela à l’esprit lorsque vous utilisez + ansible-vault view + dans des processus automatisés.

Modification de fichiers cryptés

Lorsque vous devez éditer un fichier crypté, utilisez la commande + ansible-vault edit +:

ansible-vault edit

On vous demandera le mot de passe du fichier. Après l’avoir entré, Ansible ouvrira le fichier dans une fenêtre d’édition dans laquelle vous pourrez apporter les modifications nécessaires.

Lors de la sauvegarde, le nouveau contenu sera crypté en utilisant à nouveau le mot de passe de cryptage du fichier et écrit sur le disque.

Déchiffrer manuellement les fichiers cryptés

Pour déchiffrer un fichier chiffré dans un coffre, utilisez la commande + ansible-vault decrypt +.

Transmettez le nom du fichier crypté:

ansible-vault decrypt

Vous serez invité à entrer le mot de passe de cryptage pour le fichier. Une fois que vous avez entré le bon mot de passe, le fichier sera déchiffré:

OutputVault password:
Decryption successful

Si vous visualisez à nouveau le fichier, au lieu du chiffrement du coffre-fort, vous devriez voir le contenu réel du fichier:

cat
OutputSecret information

Votre fichier est maintenant non chiffré sur le disque. Assurez-vous de supprimer toutes les informations sensibles ou de rechiffrer le fichier lorsque vous avez terminé.

Changer le mot de passe des fichiers cryptés

Si vous avez besoin de changer le mot de passe d’un fichier crypté, utilisez la commande + ansible-vault rekey +:

ansible-vault rekey

Lorsque vous entrez la commande, le mot de passe actuel du fichier vous sera d’abord demandé:

OutputVault password:

Après l’avoir entré, il vous sera demandé de sélectionner et de confirmer un nouveau mot de passe de coffre-fort:

OutputVault password:

Une fois que vous avez confirmé un nouveau mot de passe, vous recevez un message indiquant que le processus de rechiffrement a abouti:

OutputRekey successful

Le fichier devrait maintenant être accessible en utilisant le nouveau mot de passe. L’ancien mot de passe ne fonctionnera plus.

Exécuter Ansible avec des fichiers cryptés par Vault

Une fois que vous avez crypté vos informations sensibles avec Vault, vous pouvez commencer à utiliser les fichiers avec les outils classiques d’Ansible. Les commandes + ansible + et + ansible-playbook + savent comment décrypter des fichiers protégés par un coffre-fort avec le mot de passe correct. Il existe différentes manières de fournir des mots de passe à ces commandes en fonction de vos besoins.

Pour suivre, vous aurez besoin d’un fichier crypté par coffre-fort. Vous pouvez en créer un en tapant:

ansible-vault create secret_key

Sélectionnez et confirmez un mot de passe. Remplissez le contenu factice que vous voulez:

clef secrète

Enregistrez et fermez le fichier.

Nous pouvons également créer un fichier + hosts + temporaire en tant qu’inventaire:

nano hosts

Nous n’y ajouterons que le Ansible localhost. Pour préparer une étape ultérieure, nous allons le placer dans le groupe + [base de données] +:

les hôtes

[database]
localhost ansible_connection=local

Enregistrez et fermez le fichier lorsque vous avez terminé.

Ensuite, créez un fichier + ansible.cfg + dans le répertoire actuel, s’il n’en existe pas déjà un:

nano ansible.cfg

Pour l’instant, ajoutez simplement une section + [valeurs par défaut] + et pointez Ansible vers l’inventaire que nous venons de créer:

ansible.cfg

[defaults]
inventory = ./hosts

Lorsque vous êtes prêt, continuez.

Utilisation d’un invite interactif

Le moyen le plus simple de décrypter le contenu au moment de l’exécution consiste à demander à Ansible de vous demander les informations d’identification appropriées. Pour ce faire, vous pouvez ajouter le + - ask-vault-pass + à toute commande + ansible + ou + ansible-playbook + `. Ansible vous demandera un mot de passe qu’il utilisera pour tenter de décrypter tout contenu protégé par un coffre-fort trouvé.

Par exemple, si nous avions besoin de copier le contenu d’un fichier chiffré dans un coffre-fort sur un hôte, nous pourrions le faire avec le module + copy + et l’indicateur + - ask-vault-pass +. Si le fichier contient réellement des données sensibles, vous souhaiterez probablement verrouiller l’accès sur l’hôte distant avec des restrictions d’autorisations et de propriété.

ansible  -bK -m copy -a 'src= dest=/tmp/ mode=0600 owner=root group=root'

Notre tâche spécifie que la propriété du fichier doit être changée en + root +, de sorte que des privilèges d’administration sont requis. L’indicateur + -bK + indique à Ansible de demander le mot de passe + sudo + de l’hôte cible. Le mot de passe + sudo + vous sera demandé. Le mot de passe Vault vous sera demandé:

OutputSUDO password:
Vault password:

Lorsque le mot de passe est fourni, Ansible tente d’exécuter la tâche en utilisant le mot de passe Vault pour tous les fichiers chiffrés trouvés. Gardez à l’esprit que tous les fichiers référencés lors de l’exécution doivent utiliser le même mot de passe:

Outputlocalhost | SUCCESS => {
   "changed": true,
   "checksum": "7a2eb5528c44877da9b0250710cba321bc6dac2d",
   "dest": "/tmp/secret_key",
   "gid": 0,
   "group": "root",
   "md5sum": "270ac7da333dd1db7d5f7d8307bd6b41",
   "mode": "0600",
   "owner": "root",
   "size": 18,
   "src": "/home/sammy/.ansible/tmp/ansible-tmp-1480978964.81-196645606972905/source",
   "state": "file",
   "uid": 0
}

Demander un mot de passe est sécurisé, mais peut s’avérer fastidieux, en particulier lors de tentatives répétées, et nuit également à l’automatisation. Heureusement, il existe des alternatives pour ces situations.

Utiliser Ansible Vault avec un fichier de mot de passe

Si vous ne souhaitez pas saisir le mot de passe Vault à chaque fois que vous exécutez une tâche, vous pouvez ajouter votre mot de passe Vault à un fichier et référencer le fichier lors de l’exécution.

Par exemple, vous pouvez placer votre mot de passe dans un fichier + .vault_pass + comme ceci:

echo '' > .vault_pass

Si vous utilisez le contrôle de version, veillez à ajouter le fichier de mot de passe au fichier ignore de votre logiciel de contrôle de version pour éviter sa validation accidentelle:

echo '.vault_pass' >> .gitignore

Maintenant, vous pouvez référencer le fichier à la place. L’indicateur + - vault-password-file est disponible sur la ligne de commande. Nous pourrions compléter la même tâche depuis la dernière section en tapant:

ansible  -bK -m copy -a 'src= dest=/tmp/ mode=0600 owner=root group=root'

Le mot de passe Vault ne vous sera pas demandé cette fois-ci.

Lecture automatique du fichier de mot de passe

Pour ne pas avoir à fournir d’indicateur, vous pouvez définir la variable d’environnement + ANSIBLE_VAULT_PASSWORD_FILE + avec le chemin d’accès au fichier de mots de passe:

export ANSIBLE_VAULT_PASSWORD_FILE=./.vault_pass

Vous devriez maintenant pouvoir exécuter la commande sans l’indicateur + - vault-password-file pour la session en cours:

ansible -bK -m copy -a 'src= dest=/tmp/ mode=0600 owner=root group=root'

Pour que Ansible soit informé de l’emplacement du fichier de mots de passe au cours des sessions, vous pouvez modifier votre fichier + ansible.cfg +.

Ouvrez le fichier local + ansible.cfg + créé précédemment:

nano ansible.cfg

Dans la section + [par défaut] +, définissez le paramètre + vault_password_file +. Pointez sur l’emplacement de votre fichier de mot de passe. Cela peut être un chemin relatif ou absolu, selon celui qui vous est le plus utile:

ansible.cfg

[defaults]
. . .
vault_password_file = ./.vault_pass

Désormais, lorsque vous exécutez des commandes nécessitant un déchiffrement, le mot de passe du coffre-fort ne vous sera plus demandé. En prime, + ansible-vault + n’utilisera pas seulement le mot de passe contenu dans le fichier pour décrypter tous les fichiers, mais appliquera le mot de passe lors de la création de nouveaux fichiers avec + ansible-vault create + et `+ ansible-vault encrypt + ' .

Lecture du mot de passe à partir d’une variable d’environnement

Vous craignez peut-être que votre fichier de mots de passe soit accidentellement enregistré dans votre référentiel. Malheureusement, alors qu’Ansible dispose d’une variable d’environnement qui pointe vers l’emplacement d’un fichier de mots de passe, il n’en a pas pour la définition du mot de passe lui-même.

Cependant, si votre fichier de mots de passe est exécutable, Ansible l’exécutera sous forme de script et utilisera la sortie obtenue comme mot de passe. Dans un GitHub numéro, Brian Schwind suggère d’utiliser le script suivant pour extraire le mot de passe à partir d’une variable d’environnement.

Ouvrez votre fichier + .vault_pass + dans votre éditeur:

nano .vault_pass

Remplacez le contenu par le script suivant:

vault_pass
#!/usr/bin/env python

import os
print os.environ['VAULT_PASSWORD']

Rendre le fichier exécutable en tapant:

chmod +x .vault_pass

Vous pouvez ensuite définir et exporter la variable d’environnement + VAULT_PASSWORD +, qui sera disponible pour votre session en cours:

export VAULT_PASSWORD=

Vous devrez le faire au début de chaque session Ansible, ce qui peut sembler incommode. Toutefois, cela vous évite de commettre accidentellement votre mot de passe de cryptage Vault, qui pourrait avoir de graves inconvénients.

Utilisation de variables cryptées par Vault avec des variables régulières

Bien que Ansible Vault puisse être utilisé avec des fichiers arbitraires, il est le plus souvent utilisé pour protéger des variables sensibles. Nous allons travailler à travers un exemple pour vous montrer comment transformer un fichier de variables standard en une configuration qui allie sécurité et convivialité.

Mise en place de l’exemple

Imaginez que vous configurez un serveur de base de données. Lorsque vous avez créé le fichier + hosts + précédemment, vous avez placé l’entrée + localhost + dans un groupe appelé + database + pour préparer cette étape.

Les bases de données nécessitent généralement un mélange de variables sensibles et non sensibles. Ceux-ci peuvent être assignés dans un répertoire + group_vars + dans un fichier nommé d’après le groupe:

mkdir -p group_vars
nano group_vars/database

Dans le fichier + group_vars / database in, configurez des variables. Certaines variables, comme le numéro de port MySQL, ne sont pas secrètes et peuvent être librement partagées. D’autres variables, comme le mot de passe de la base de données, seront confidentielles:

groupe_vars / base de données

---
# nonsensitive data
mysql_port: 3306
mysql_host: 10.0.0.3
mysql_user: fred

# sensitive data
mysql_password:

Nous pouvons vérifier que toutes les variables sont disponibles pour notre hôte avec le module Ansible + debug et la variable` + hostvars`:

ansible -m debug -a 'var=hostvars[inventory_hostname]'
Outputlocalhost | SUCCESS => {
   "hostvars[inventory_hostname]": {
       "ansible_check_mode": false,
       "ansible_version": {
           "full": "2.2.0.0",
           "major": 2,
           "minor": 2,
           "revision": 0,
           "string": "2.2.0.0"
       },
       "group_names": [
           "database"
       ],
       "groups": {
           "all": [
               "localhost"
           ],
           "database": [
               "localhost"
           ],
           "ungrouped": []
       },
       "inventory_dir": "/home/sammy",
       "inventory_file": "hosts",
       "inventory_hostname": "localhost",
       "inventory_hostname_short": "localhost",




       "omit": "__omit_place_holder__1c934a5a224ca1d235ff05eb9bda22044a6fb400",
       "playbook_dir": "."
   }
}

La sortie confirme que toutes les variables que nous avons configurées sont appliquées à l’hôte. Cependant, notre fichier + group_vars / database + contient actuellement toutes nos variables. Cela signifie que nous pouvons soit le laisser non chiffré, ce qui est un problème de sécurité en raison de la variable de mot de passe de la base de données, soit nous chiffrer toutes les variables, ce qui crée des problèmes de convivialité et de collaboration.

Déplacement de variables sensibles dans Ansible Vault

Pour résoudre ce problème, nous devons faire une distinction entre les variables sensibles et non sensibles. Nous devrions être capables de chiffrer des valeurs confidentielles tout en partageant facilement nos variables non sensibles. Pour ce faire, nous allons diviser nos variables entre deux fichiers.

Il est possible d’utiliser un répertoire de variables à la place d’une variable Ansible file afin d’appliquer des variables provenant de plusieurs fichiers. Nous pouvons nous reflexer pour tirer parti de cette capacité. Commencez par renommer le fichier existant de + database in en` + var`. Ce sera notre fichier de variable non chiffré:

mv group_vars/database group_vars/vars

Ensuite, créez un répertoire portant le même nom que l’ancien fichier de variable. Déplacez le fichier + vars + à l’intérieur de:

mkdir group_vars/database
mv group_vars/vars group_vars/database/

Nous avons maintenant un répertoire de variables pour le groupe + database in au lieu d’un fichier unique et nous avons un seul fichier de variable non chiffré. Puisque nous allons chiffrer nos variables sensibles, nous devrions les supprimer de notre fichier non chiffré. Editez le fichier + group_vars / database / vars + pour supprimer les données confidentielles:

nano group_vars/database/vars

Dans ce cas, nous voulons supprimer la variable + mysql_password +. Le fichier devrait maintenant ressembler à ceci:

group_vars / database / vars

---
# nonsensitive data
mysql_port: 3306
mysql_host: 10.0.0.3
mysql_user: fred

Ensuite, créez un fichier crypté par coffre-fort dans le répertoire qui vivra à côté du fichier + vars + non crypté:

ansible-vault create group_vars/database/vault

Dans ce fichier, définissez les variables sensibles qui se trouvaient dans le fichier + vars +. Utilisez les mêmes noms de variables, mais ajoutez la chaîne + vault_ + à la fin pour indiquer que ces variables sont définies dans le fichier protégé par le coffre-fort:

group_vars / database / vault

---
mysql_password:

Enregistrez et fermez le fichier lorsque vous avez terminé.

La structure de répertoire résultante ressemble à ceci:

.
├── . . .
├── group_vars/
│   └── database/
│       ├── vars
│       └── vault
└── . . .

À ce stade, les variables sont séparées et seules les données confidentielles sont cryptées. Ceci est sécurisé, mais notre implémentation a affecté notre facilité d’utilisation. Notre objectif étant de protéger les valeurs sensibles, nous avons également réduit involontairement la visibilité des noms de variables. Il n’est pas clair quelles variables sont affectées sans faire référence à plus d’un fichier. Vous souhaiterez peut-être limiter l’accès aux données confidentielles pendant la collaboration, mais vous souhaiterez probablement toujours partager les noms de variables.

Pour résoudre ce problème, le projet Ansible recommande généralement une approche légèrement différente.

Référencement de variables de coffre-fort à partir de variables non chiffrées

Lorsque nous avons transféré nos données sensibles dans le fichier protégé par le coffre-fort, nous avons préfacé les noms de variables par + vault_ + (+ mysql_password + est devenu + vault_mysql_password +). Nous pouvons ajouter les noms de variables d’origine (+ mysql_password +) dans le fichier non chiffré. Au lieu de les définir directement sur des valeurs sensibles, nous pouvons utiliser des instructions de modèle Jinja2 pour référencer les noms de variable chiffrés à partir de notre fichier de variable non chiffré. De cette façon, vous pouvez voir toutes les variables définies en référençant un seul fichier, mais les valeurs confidentielles resteront dans le fichier crypté.

Pour démontrer, ouvrez à nouveau le fichier de variables non chiffrées:

nano group_vars/database/vars

Ajoutez à nouveau la variable + mysql_password +. Cette fois, utilisez un modèle Jinja2 pour référencer la variable définie dans le fichier protégé par le coffre-fort:

group_vars / database / vars

---
# nonsensitive data
mysql_port: 3306
mysql_host: 10.0.0.3
mysql_user: fred

# sensitive data
mysql_password:

La variable + mysql_password + sera définie sur la valeur de la variable + vault_mysql_password +, définie dans le fichier de coffre-fort.

Avec cette méthode, vous pouvez comprendre toutes les variables qui seront appliquées aux hôtes du groupe + database + en affichant le fichier + group_vars / database / vars +. Les parties sensibles seront obscurcies par le gabarit Jinja2. `` Group_vars / database / vault + `ne doit être ouvert que lorsque les valeurs elles-mêmes doivent être visualisées ou modifiées.

Vous pouvez vérifier que toutes les variables + mysql _ * + sont toujours correctement appliquées en utilisant la même méthode que la dernière fois.

ansible -m debug -a 'var=hostvars[inventory_hostname]'
Outputlocalhost | SUCCESS => {
   "hostvars[inventory_hostname]": {
       "ansible_check_mode": false,
       "ansible_version": {
           "full": "2.2.0.0",
           "major": 2,
           "minor": 2,
           "revision": 0,
           "string": "2.2.0.0"
       },
       "group_names": [
           "database"
       ],
       "groups": {
           "all": [
               "localhost"
           ],
           "database": [
               "localhost"
           ],
           "ungrouped": []
       },
       "inventory_dir": "/home/sammy/vault",
       "inventory_file": "./hosts",
       "inventory_hostname": "localhost",
       "inventory_hostname_short": "localhost",




       "omit": "__omit_place_holder__6dd15dda7eddafe98b6226226c7298934f666fc8",
       "playbook_dir": ".",

   }
}

Le + vault_mysql_password + et le + mysql_password + sont accessibles. Cette duplication est inoffensive et n’affectera pas votre utilisation de ce système.

Conclusion

Vos projets doivent disposer de toutes les informations nécessaires pour installer et configurer avec succès des systèmes complexes. Cependant, certaines données de configuration sont par définition sensibles et ne doivent pas être exposées publiquement. Dans ce guide, nous avons montré comment Ansible Vault peut chiffrer des informations confidentielles afin que vous puissiez conserver toutes vos données de configuration au même endroit sans compromettre la sécurité.