Funk-lab/admin/ops/ansible.md
alkatrazz 5bcf95b82e docs: réorganisation complète de admin/ en 4 domaines thématiques
Structure avant : 20 fichiers à plat dans admin/ — difficile à naviguer.
Structure après : 4 sous-répertoires thématiques + index clair.

Réorganisation :
  admin/ops/    → cluster.md, ansible.md, systeme.md
  admin/infra/  → reseau.md, nfs.md, dnsmasq.md, ssh.md
  admin/k8s/    → talos.md, argocd.md, monitoring.md
  admin/ia/     → llama_server.md, rocm.md, litellm.md, hermes.md

Suppressions :
  - ask-agent.md : contenu fusionné dans ia/hermes.md (section ask-agent)
  - lm_studio.md : obsolète (LM Studio remplacé par llama-server)

Mises à jour contenu :
  - ia/hermes.md : fusion complète avec ask-agent.md (profils, skills,
    SOUL.md, ask-agent CLI, dépannage) — doc unifiée sans redondance
  - ops/cluster.md : section GitOps réduite à 2 lignes + lien argocd.md
  - incidents.md : tableau de résumé en tête + 4 nouveaux incidents
    (Grafana OOMKilled, AlertManager null receiver, llama-server 501,
    nftables règle après drop)
  - README.md : réécrit — navigation rapide + index par domaine

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 00:47:58 +02:00

3 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