Quel est l'équivalent de configuration d'Ansible de `--vault-password-file`?

12

Selon l'aide de ansible-playbook, on pourrait utiliser --user=REMOTE_USERpour définir l'utilisateur ssh, mais on pourrait également définir ansible_ssh_user: REMOTE_USERdans l'hôte ou le groupe_vars.

Question

Quelle variable doit être définie dans le répertoire group- ou host_vars pour éviter qu'elle --vault-password-filene soit définie lors de l'exécution ansible-playbook?

Tentatives

  • Lorsque ansible_vault_password_file: ~/.vault_pass.txtest défini dans la configuration, le déchiffrement échoue:

    ERROR! Decryption failed on /path/to/vault
    
  • Aucune variable de coffre-fort associée n'a été trouvée dans cette documentation

030
la source
Btw c'est maintenant documenté (à partir de la version 1.7) ici: docs.ansible.com/ansible/…
Tensibai

Réponses:

13

Voici la définition:

DEFAULT_VAULT_PASSWORD_FILE = get_config(p, DEFAULTS, 'vault_password_file', \
'ANSIBLE_VAULT_PASSWORD_FILE', None, value_type='path')

Cela signifie que vous mettez soit ansible.cfg ou playbook:

vault_password_file: ~/.vault_pass.txt

Ou dans votre shell défini cette variable:

export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt
Jiri Klouda
la source
J'ai laissé le texte de l'URL là-bas intentionnellement pour montrer aux gens comment regarder le code peut aider là où la documentation manque et où le code peut être trouvé facilement. Mais je suppose qu'un hyperlien devrait suffire.
Jiri Klouda
Si autre chose échoue, lisez la documentation ... et s'il n'y a pas de documentation, lisez la source ... si vous y avez accès ... et si vous le faites, assurez-vous que vous cherchez la bonne version .. La seule chose qui reste alors est de pouvoir tout comprendre. PS: les liens pourraient ne plus fonctionner un jour ...
Pierre.Vriens
@JiriKlouda cela ne semble pas fonctionner bien qu'il ait été défini dans group_vars/all/vars. export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtdevait être exécuté.
030
Il s'agit d'une variable de configuration. Il doit être dans ansible.cfg ou équivalent ou dans le playbook.
Jiri Klouda
J'ai également spécifiquement vérifié la version 2.2 que vous exécutez et elle est là: github.com/ansible/ansible/blob/stable-2.2/lib/ansible/…
Jiri Klouda
2

Vous pouvez définir une variable d'environnement ANSIBLE_VAULT_PASSWORD_FILEstockant le chemin d'accès au fichier de mots de passe du coffre-fort. De cette façon, vous n'aurez pas toujours à utiliser le --vault-password-filecommutateur lors de l'exécution d'un playbook.

Ceci est décrit dans la documentation d'Ansible's Vault, disponible ici .

Alors, ajoutez-en export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtà votre ~/.bash_profilesource et vous êtes prêt à partir.

Si vous avez besoin de mots de passe de coffre-fort différents pour différents groupes d'hôtes, vous devez procéder comme suit:

À l'intérieur de ce sous-répertoire, créez deux fichiers nommés vars et vault. À l'intérieur du fichier vars, définissez toutes les variables nécessaires, y compris les variables sensibles. Ensuite, copiez toutes les variables sensibles dans le fichier du coffre-fort et préfixez ces variables avec vault_. Vous devez ajuster les variables dans le fichier vars pour pointer vers les variables vault_ correspondantes et vous assurer que le fichier vault est chiffré dans le coffre-fort.

Il s'agit d'un exemple d'approche des meilleures pratiques pour la gestion des informations sensibles par groupe. Plus d'informations sont disponibles dans la documentation d'Ansible ici (le texte ci-dessus est copié à partir de là).

13dimitar
la source
1
Cela ne permettra pas un mot de passe différent par hôte
Tensibai
Faites-vous référence au mot de passe de connexion? Parce que si vous le faites, qu'est-ce qu'il a en commun avec Ansible Vault?
13dimitar
Je faisais référence au mot de passe du coffre-fort, vouloir avoir un mot de passe de coffre-fort différent pour différents groupes est logique (et est la racine de la question pour autant que je le comprenne).
Tensibai
Je ne l'ai pas compris de cette façon. J'ai modifié ma réponse pour inclure ce scénario.
13dimitar
semble mieux. Btw downvote n'est pas à moi
Tensibai