637562faa2beac2a4b0bb5eec23082333389128a
Generic script.py skill (list/show/save/exec/run/delete) with dynamic scripts dir derived from queue_db path or config scripts_dir key. Each agent gets its own /opt/<agent>/scripts/ folder. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
agent_ansible
Agent d'automatisation d'infrastructure via Ansible. Exécute des playbooks, lance des commandes ad-hoc sur un parc de serveurs, gère l'inventaire, les rôles Galaxy et les secrets Vault.
Rôle
Cet agent est fait pour automatiser des tâches sur plusieurs serveurs distants via Ansible. Pour une tâche sur le serveur local uniquement, utiliser agent_debian.
Installation
cd /opt/agent_ansible
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Ansible doit être installé sur le système
apt install ansible
systemctl enable --now agent_ansible
Skills disponibles
| Skill | Description |
|---|---|
playbook |
Exécute un playbook Ansible (ansible-playbook) |
adhoc |
Commandes ad-hoc sur un groupe d'hôtes (ansible -m) |
inventory |
Gestion de l'inventaire (list, add, remove, ping) |
galaxy |
Installation de rôles et collections (ansible-galaxy) |
vault |
Chiffrement/déchiffrement de secrets (ansible-vault) |
shell |
Commandes shell locales (utile pour diagnostics) |
agents_status |
Statut des agents du système |
mqtt_send |
Publication sur un topic MQTT |
mqtt_subscribe |
Souscription dynamique à un topic MQTT |
muc_send |
Message dans le groupe XMPP |
Structure
agent_ansible.py — Point d'entrée
skills/ — 10 skills Ansible
config/ — Configuration et system prompt
playbooks/ — Playbooks Ansible
inventory/
hosts — Inventaire des hôtes
ansible.cfg — Configuration Ansible
agent_ansible.service — Unit systemd
Configuration
config/config.json :
{
"agent_id": "ansible.main",
"xmpp": {
"jid": "ansible.main@xmpp.ovh",
"password": "...",
"admin_jid": "sylvain@xmpp.ovh",
"muc_room": "agents@muc.xmpp.ovh"
},
"mqtt": { "host": "localhost", "port": 1883 },
"llm": {
"base_url": "http://192.168.7.119:11434",
"model": "ministral-3:latest",
"temperature": 0.3
},
"llm_profiles": {
"local": "ministral-3:latest",
"cloud": "gpt-oss:120b-cloud"
}
}
Commandes
/report — Rapport (stats tâches + version Ansible)
/update — Git pull + redémarrage du service
/status — État de la queue de tâches
Exemples de tâches (via Nexus)
"Lance le playbook site.yml sur le groupe webservers"
"Fais un apt upgrade sur tous les serveurs de prod"
"Ping tous les hôtes de l'inventaire"
"Installe le rôle geerlingguy.nginx depuis Galaxy"
Description
Languages
Python
100%