Skip to main content

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