Bonjour,
Je suis en train de me former à ansible, et j'essaie d'utiliser ansible-vault dans un cas que je croyais simple, c'est à dire stocker le mot de passe d'un user.
J'ai créé un fichier vault.yml comme décrit dans la documentation. Je peux voir que le fichier est crypté et je sais le relire ou l'éditer. Il est aussi protégé par un mot de passe stocké dans un fichier que je passe en paramètre de ligne de commande via --vault-password-file.
Pas de problème de ce côté là.
En revanche, je coince au niveau de l'utilisation.
J'inclue ce fichier dans le fichier task main.yml et je lance le playbook (donc avec --vault-password-file). Après quelques tatonnement, je sais que mon fichier vault est inclus, et je pense pouvoir créer un utilisateur avec :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| - name: Create jenkins user if not present
user:
name: jenkins
groups: jenkins
state: present
password: "{{ jenkins | password_hash('sha512') }}"
comment: "Jenkins Instance user"
createhome: yes
home: /home/jenkins
shell: /usr/bin/bash
# Generate a ssh key within a file that will be copied on local
generate_ssh_key: yes
ssh_key_bits: 2048
ssh_key_file: .ssh/jenkins_id_rsa
# {{ jenkins }} will be extracted from the vault
register: user_Result
become: yes
become_user: root |
Sachant que mon fichier vault.yml encrypté contient en clair :
(exemple bidon pour les tests... ça va sans dire)
Certes, l'utilisateur est créé avec un mot de passe. Mais je ne sais pas lequel, parce qu'un su jenkins sur la VM où tout cela se passe se termine en erreur quand je donne mon mot de passe.
En revanche, si je mets :
password: "{{ 'totototo' | password_hash('sha512') }}"
Le playbook crée bien un user jenkins avec le password totototo.
J'en conclue que je fais une erreur dans l'utilisation du vault, mais je ne comprends pas laquelle.
Merci de votre aide.
Cordialement
J-L
Partager