Funk-lab/admin/ops/ansible.md
Hermes Bot 00e53fc0b8 docs(hermes): sections état vérifié — inspection cluster 2026-06-05
Ajout d'une section '## État vérifié' à chaque doc admin/ basée
sur l'inspection read-only du cluster (systemctl, kubectl, nft, etc.).
Aucune modification de service ni réécriture de documentation existante.

Co-Authored-By: Hermes <hermes@funk.lab>
2026-06-05 12:32:57 +02:00

3.5 KiB

Ansible — Commandes d'administration

Toutes les commandes se lancent depuis la racine du repo (lab-infra/). Le venv est dans .venv/, le Makefile fournit les raccourcis.


Raccourcis Makefile

make ping           # Vérifie que toutes les machines répondent
make check          # Dry-run complet (simule sans appliquer)
make apply          # Applique tous les playbooks (storage-01 + gpu-01)
make apply-storage  # Applique uniquement storage-01
make apply-gpu      # Applique uniquement gpu-01
make install        # Installe ansible-core + collections Galaxy
make vault-encrypt  # Chiffre group_vars/all/vault.yml
make vault-edit     # Édite le vault (déchiffre → édite → rechiffre)
make vault-view     # Affiche le contenu du vault déchiffré

Commandes Ansible directes

Cibler un rôle spécifique

cd ansible/
# Via tag (si les rôles ont des tags)
../.venv/bin/ansible-playbook playbooks/storage-01.yml --tags dnsmasq

# Via limite d'hôte
../.venv/bin/ansible-playbook playbooks/site.yml -l gpu-01

Exécuter une commande ad-hoc sur une machine

cd ansible/
../.venv/bin/ansible storage-01 -m shell -a "systemctl status dnsmasq"
../.venv/bin/ansible all -m shell -a "uptime"
../.venv/bin/ansible gpu_hosts -m shell -a "free -h"

Collecter les facts d'une machine (variables système détectées)

cd ansible/
../.venv/bin/ansible storage-01 -m setup
../.venv/bin/ansible storage-01 -m setup -a "filter=ansible_interfaces"
../.venv/bin/ansible storage-01 -m setup -a "filter=ansible_default_ipv4"

Vérifier l'inventaire

cd ansible/
../.venv/bin/ansible-inventory --list       # JSON complet
../.venv/bin/ansible-inventory --graph      # Arbre des groupes/hôtes

Dry-run avec diff (voir exactement ce qui changerait)

cd ansible/
../.venv/bin/ansible-playbook playbooks/storage-01.yml --check --diff

Débugger une variable

cd ansible/
../.venv/bin/ansible storage-01 -m debug -a "var=lan_interface"
../.venv/bin/ansible storage-01 -m debug -a "var=hostvars['storage-01']"

Augmenter la verbosité (debug complet)

cd ansible/
../.venv/bin/ansible-playbook playbooks/storage-01.yml -v    # output étendu
../.venv/bin/ansible-playbook playbooks/storage-01.yml -vvv  # connexions SSH incluses

Vault Ansible

# Chiffrer un fichier
cd ansible/
../.venv/bin/ansible-vault encrypt group_vars/all/vault.yml

# Chiffrer une valeur à la volée (copier-coller dans vault.yml)
../.venv/bin/ansible-vault encrypt_string 'mon_mot_de_passe' --name 'vault_postgres_password'

# Déchiffrer temporairement pour voir
../.venv/bin/ansible-vault view group_vars/all/vault.yml

# Changer le mot de passe vault
../.venv/bin/ansible-vault rekey group_vars/all/vault.yml

Groupes d'hôtes disponibles

Groupe Machines
all storage-01, gpu-01
gateway storage-01
gpu_hosts gpu-01
almalinux storage-01, gpu-01

État vérifié — 2026-06-05

  • Ansible non installé (ansible --version retourne une erreur)
  • Rôles présents : alertmanager, webhook, dnsmasq, gateway, hermes_agent, hermes_auto_improve, hermes_user, litellm, llama_server, lm_studio, minion, fs_client, nfs_server, node_exporter, postfix_relay, postgresql, qdrant, ragrocm
  • Divergence : absence de rôle pour la gestion des certificats TLS et des règles de pare-feu nftables
  • Élément opérationnel : le rôle nfs_server manque une exportation /srv/data pour le cluster Kubernetes