⚡ Ansible Cheat Sheet
Cette page regroupe les commandes Ansible les plus utilisées pour administrer la plateforme Homelab.
🎯 Objectif
Cette documentation sert de référence rapide lors des opérations quotidiennes.
- Gestion des secrets
- Exécution des playbooks
- Commandes Ad-Hoc
- Débogage
- Mise à jour du cluster Kubernetes
🔐 Gestion des secrets (Ansible Vault)
Le mot de passe du coffre est automatiquement lu depuis :
/config/.vault/vault_password.txt
Chiffrer une variable
Permet d'insérer une valeur chiffrée directement dans un fichier YAML.
ansible-vault encrypt_string --stdin-name 'my_variable'
Procédure :
- Taper la valeur à chiffrer
- Appuyer sur Entrée
- Faire Ctrl+D deux fois
- Copier le bloc
!vaultobtenu dans le fichier YAML
Modifier un fichier Vault
ansible-vault edit infra/ansible/vars/my_secrets.yml
Chiffrer un fichier
ansible-vault encrypt mon_fichier_clair.yml
Déchiffrer un fichier
ansible-vault decrypt mon_fichier_chiffre.yml
⚠ Attention : le fichier reste en clair sur le disque après déchiffrement.
▶ Exécution des Playbooks
Préparer l'environnement
export ANSIBLE_ROLES_PATH=$(pwd)/infra/ansible/roles
export ANSIBLE_HOST_KEY_CHECKING=False
Lancer un playbook
ansible-playbook \
-i infra/ansible/inventory.yml \
infra/ansible/playbooks/MON_PLAYBOOK.yml
🐞 Options de Debug
| Option | Description |
|---|---|
--check |
Simulation sans modification (Dry Run) |
--diff |
Affiche les différences sur les fichiers modifiés |
--limit <host> |
Exécute uniquement sur un hôte ou un groupe |
-vvv |
Mode très verbeux pour le diagnostic |
Exemples
ansible-playbook ... --check
ansible-playbook ... --limit "squall"
ansible-playbook ... -vvv
⚡ Commandes Ad-Hoc
Tester la connectivité
Toutes les machines
ansible all \
-i infra/ansible/inventory.yml \
-m ping
Cluster Kubernetes
ansible kubernetes_nodes \
-i infra/ansible/inventory.yml \
-m ping
Exécuter une commande
Afficher l'uptime des LXC
ansible proxmox_lxcs \
-i infra/ansible/inventory.yml \
-a "uptime"
Redémarrer un service
ansible web-server \
-i infra/ansible/inventory.yml \
-b \
-m service \
-a "name=apache2 state=restarted"
☸ Upgrade du Cluster Kubernetes
Playbook Ansible
ansible-playbook \
-i infra/ansible/inventory.yml \
infra/ansible/playbooks/upgrade-cluster.yml \
-e "target_version=1.3x.x-1.1"
Via Moon
moon run :upgrade-k8s-cluster -- \
-e "target_version=1.3x.x-1.1"
💡 Bonnes pratiques
- Toujours exécuter un
--checkavant un changement important. - Utiliser
--limitpour tester sur une seule machine. - Préférer les playbooks aux commandes Ad-Hoc pour les modifications permanentes.
- Ne jamais stocker un secret en clair dans Git.
- Privilégier les variables Vault ou les Sealed Secrets selon le contexte.
```
No comments to display
No comments to display