From 6aac8a4e3b55c7d36534799a04b46246555a66a1 Mon Sep 17 00:00:00 2001 From: sylvain Date: Mon, 9 Mar 2026 17:47:55 +0000 Subject: [PATCH] docs: ajout README.md --- README.md | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..12f7398 --- /dev/null +++ b/README.md @@ -0,0 +1,85 @@ +# agent_deploy + +Agent de déploiement d'agents IA sur des serveurs distants via SSH. Installe, configure et démarre de nouveaux agents sur des machines cibles à partir d'un catalogue. + +## Rôle + +Cet agent est **uniquement** pour déployer de nouveaux agents IA sur de nouvelles machines. Pour des tâches système courantes (apt, services, fichiers), utiliser `agent_debian`. Pour l'automatisation multi-serveurs, utiliser `agent_ansible`. + +## Installation + +```bash +cd /opt/agent_deploy +python3 -m venv venv +source venv/bin/activate +pip install -r requirements.txt +systemctl enable --now agent_deploy +``` + +## Skills disponibles + +| Skill | Description | +|-------|-------------| +| `deploy` | Déploie un agent sur un serveur distant via SSH | +| `catalog` | Consulte le catalogue des agents déployables | +| `ssh` | Connexion SSH et exécution de commandes distantes | +| `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_deploy.py — Point d'entrée +deployer.py — Logique de déploiement (AgentCatalog) +skills/ — 7 skills +config/ + config.json — Configuration + system_prompt.txt — Prompt système + catalog.json — Catalogue des agents déployables +agent_deploy.service — Unit systemd +``` + +## Configuration + +`config/config.json` : +```json +{ + "agent_id": "deploy", + "xmpp": { + "jid": "deploy@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" + }, + "catalog": "/opt/agent_deploy/config/catalog.json" +} +``` + +## Commandes + +``` +/catalog — Liste les agents disponibles dans le catalogue +/report — Statistiques de déploiement +/status — État de la queue de tâches +``` + +## Exemples de tâches (via Nexus) + +``` +"Déploie un agent debian sur le serveur 10.0.0.5" +"Installe un nouvel agent ansible sur srv-infra-01" +``` + +> **Note** : l'agent demande toujours confirmation de l'hôte cible. Ne jamais inventer un nom de serveur.