Installation de passlib
et hashage sécurisé
Installation de passlib
et hashage sécurisé
1 - 🟢 Playbook 1 : Installation de passlib
et hashage sécurisé
- Dans cette troisième partie, nous allons installer
passlib
pour permettre le hashage sécurisé des mots de passe. - Ce playbook installe
passlib
, puis ajoute les utilisateurs avec un mot de passe sécurisé.
Création du fichier add-users-fixed.yml
---
- name: Ajouter Plusieurs Utilisateurs (Avec Hash après installation de passlib)
hosts: database
become: yes
vars:
db_users:
- username: "alice"
password: "password1"
uid: 1001
- username: "bob"
password: "password2"
uid: 1002
- username: "charlie"
password: "password3"
uid: 1003
tasks:
- name: Installer `passlib` avec pip 🛠️
ansible.builtin.pip:
name: passlib
state: present
- name: Créer les Utilisateurs (Hashé) ✅
user:
name: "{{ item.username }}"
uid: "{{ item.uid }}"
password: "{{ item.password | password_hash('sha512') }}"
shell: "/bin/bash"
state: present
loop: "{{ db_users }}"
Exécution
ansible-playbook -i inventory.ini add-users-fixed.yml
2 - 🔴 Nouvelle erreur
Unable to find pip3
Deuxième partie : Problème d’installation de pip3
3 - 🟡 Playbook 2 : Vérifier si pip3
est installé
Avant d’installer passlib
, il est nécessaire de s’assurer que pip3
est bien présent.
Création du fichier check-pip.yml
---
- name: Vérifier la présence de pip3
hosts: database
become: yes
tasks:
- name: Vérifier si pip3 est installé
command: which pip3
register: pip3_check
ignore_errors: yes
- name: Afficher le résultat
debug:
msg: "{{ pip3_check.stdout if pip3_check.rc == 0 else 'pip3 non trouvé' }}"
4 - 🟡 Exécution
ansible-playbook -i inventory.ini check-pip.yml
⚠️ Si pip3
est absent, il faudra l'installer.
5 - 🟡 Playbook 3 : Installation de pip3
Si pip3
est absent, ce playbook l’installe.
Création du fichier install-pip.yml
---
- name: Installer pip3 si nécessaire
hosts: database
become: yes
tasks:
- name: Installer les prérequis
package:
name: "{{ item }}"
state: present
loop:
- python3
- python3-pip
- name: Vérifier l'installation de pip3
command: which pip3
register: pip3_check
- name: Afficher le chemin de pip3
debug:
msg: "pip3 est installé à : {{ pip3_check.stdout }}"
Exécution
ansible-playbook -i inventory.ini install-pip.yml
6 - 🟡 Playbook 4 : Installer passlib
après pip3
Enfin, passlib
peut être installé correctement.
Création du fichier install-passlib.yml
---
- name: Installer passlib après installation de pip3
hosts: database
become: yes
tasks:
- name: Vérifier si pip3 est installé
command: which pip3
register: pip3_check
ignore_errors: yes
- name: Installer passlib avec pip3
pip:
name: passlib
executable: "{{ pip3_check.stdout | default('/usr/bin/pip3') }}"
state: present
when: pip3_check.rc == 0
Exécution
ansible-playbook -i inventory.ini install-passlib.yml