# agent_debian Agent d'administration système. Gère les paquets, services, processus, fichiers, réseau, utilisateurs et conteneurs sur le serveur local. Répond aux délégations de Nexus via MQTT. ## Rôle Toutes les tâches système sur **ce serveur** passent par cet agent : `apt install`, `systemctl restart`, surveillance disque/RAM, consultation des logs, gestion des crons, exécution de scripts, etc. ## Installation ```bash cd /opt/agent_debian python3 -m venv venv source venv/bin/activate pip install -r requirements.txt systemctl enable --now agent_debian ``` ## Skills disponibles | Skill | Description | |-------|-------------| | `apt` | Gestion des paquets (install, remove, update, upgrade, search) | | `systemd` | Contrôle des services (start, stop, restart, status, enable) | | `shell` | Exécution de commandes shell arbitraires | | `script` | Bibliothèque de scripts bash (save/list/show/edit/exec/run/delete) | | `sysinfo` | CPU, RAM, disque, uptime | | `process` | Liste, kill, surveillance des processus | | `filesystem` | Lecture, écriture, liste, recherche de fichiers | | `network` | Interfaces, connexions, ping, traceroute | | `journal` | Consultation des logs systemd (journalctl) | | `cron` | Gestion des tâches cron | | `container` | Gestion Docker/LXC (ps, start, stop, logs) | | `user` | Gestion des utilisateurs et groupes | | `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 | ## Bibliothèque de scripts Les scripts bash sont stockés dans `/opt/agent_debian/scripts/`. Ils peuvent être créés et exécutés depuis Nexus : ``` # Via Nexus /script save debian backup | #!/bin/bash\ntar -czf /tmp/backup.tgz /etc /script run debian backup /script schedule daily 03:00 debian backup /script list debian ``` Chaque exécution envoie une notification XMPP à l'admin via Nexus. **Règles de nommage** : les noms sont normalisés (extensions strip automatique, `.service`/`.timer`/`.py`… interdits). Le contenu doit contenir au moins une commande réelle. ## Confirmations requises Les actions suivantes demandent confirmation avant exécution (requêtes XMPP directes uniquement) : - **cron** : `add`, `remove`, `clear` - **systemd** : `start`, `stop`, `restart`, `enable`, `disable`, `mask`, `unmask`, `daemon-reload` Répondre `oui` pour confirmer ou `non` pour annuler. ## Surveillance proactive L'agent monitore en arrière-plan (toutes les 5 minutes) : - **Disque** : alerte si un volume dépasse 85% d'utilisation - **RAM** : alerte si la mémoire utilisée dépasse 90% Les alertes sont envoyées automatiquement à Nexus via MQTT. ## Configuration `config/config.json` : ```json { "agent_id": "debian.local", "xmpp": { "jid": "debian.local@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": "qwen3:8b", "temperature": 0.3 }, "llm_profiles": { "local": "qwen3:8b", "cloud": "gpt-oss:120b-cloud" }, "use_omemo": true, "use_llm_coordinator": true } ``` ## Commandes ``` /report — Rapport système (uptime, RAM, disque, stats tâches) /update — Git pull + redémarrage du service /status — État de la queue de tâches /pause — Pause du traitement des tâches /resume — Reprise /script — Gestion de la bibliothèque de scripts bash ``` ## Fichiers ``` agent_debian.py — Point d'entrée skills/ — 16 skills système scripts/ — Scripts bash persistants config/ — Configuration et system prompt agent_debian.service — Unit systemd ```