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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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