Configurer un Hook Pre-Commit pour Vérifier le Chiffrement des Fichiers avec Ansible Vault Link to heading
Dans ce tutoriel, nous allons mettre en place un hook pre-commit qui s’assurera que tous les fichiers du dossier secret sont chiffrés avec ansible-vault avant d’autoriser leur commit dans Git. Cela permet de garantir que les informations sensibles restent protégées.
Prérequis Link to heading
- Python (nécessaire pour installer l’outil
pre-commit) - Ansible (pour
ansible-vault)
Étape 1 : Installer pre-commit
Link to heading
Tout d’abord, nous devons installer l’outil pre-commit :
pip install pre-commit
pre-commit nous permet de définir des vérifications automatiques à effectuer avant chaque commit, comme ici la vérification du chiffrement des fichiers.
Étape 2 : Créer la Configuration de Pre-Commit Link to heading
À la racine de votre projet, créez un fichier .pre-commit-config.yaml qui contiendra la configuration du hook.
repos:
- repo: local
hooks:
- id: check-ansible-vault
name: Check Ansible Vault Encryption
entry: bash check_ansible_vault.sh
language: system
files: ^secret/.*$
stages: [pre-commit]
Explication des paramètres Link to heading
repo: local: indique que ce hook est local, c’est-à-dire spécifique à votre projet.entry: bash check_ansible_vault.sh: le hook exécutera un script nommécheck_ansible_vault.sh.files: ^secret/.*$: ne sélectionne que les fichiers dans le dossiersecret.stages: [commit]: applique ce hook au moment du commit.
Étape 3 : Créer le Script de Vérification Link to heading
Ensuite, nous devons créer le script check_ansible_vault.sh qui vérifiera si chaque fichier dans secret est bien chiffré avec ansible-vault.
- À la racine du projet, créez un fichier nommé
check_ansible_vault.sh. - Ouvrez-le et ajoutez-y le contenu suivant :
#!/bin/bash
# Boucle sur chaque fichier fourni en argument par pre-commit
for file in "$@"; do
# Vérifie si le fichier est bien chiffré avec ansible-vault
if ! ansible-vault view "$file" &>/dev/null; then
echo "Erreur : Le fichier $file n'est pas chiffré avec ansible-vault."
exit 1
fi
done
Ce script :
- Parcourt chaque fichier fourni en paramètre par
pre-commitdans le dossiersecret. - Utilise
ansible-vault viewpour vérifier si le fichier est chiffré (sans afficher son contenu). - Si un fichier n’est pas chiffré, il affiche un message d’erreur et retourne un code de sortie
1, empêchant ainsi le commit.
Rendre le script exécutable en exécutant la commande suivante :
chmod +x check_ansible_vault.sh
Étape 4 : Installer le Hook Pre-Commit Link to heading
Installez le hook dans votre projet pour qu’il s’exécute automatiquement à chaque commit :
pre-commit install
Cela ajoutera un hook dans votre configuration Git qui invoquera pre-commit avant chaque commit.
Étape 5 : Tester le Hook Link to heading
Essayez de committer un fichier non chiffré dans le dossier
secretpour vérifier que le hook fonctionne correctement. Vous devriez voir un message d’erreur indiquant que le fichier n’est pas chiffré.Si tout fonctionne correctement, lorsque tous les fichiers dans
secretsont bien chiffrés avecansible-vault, le commit sera autorisé.
Conclusion Link to heading
Avec ce pre-commit hook, vous vous assurez que tous les fichiers sensibles dans secret sont protégés par ansible-vault avant d’être committés.