feat: add installation and update script for VPS Monitor Agent
Some checks failed
Build and Push Docker Images / docker (push) Failing after 11s
Some checks failed
Build and Push Docker Images / docker (push) Failing after 11s
This commit is contained in:
155
vps-monitor/agent/INSTALL.md
Normal file
155
vps-monitor/agent/INSTALL.md
Normal file
@@ -0,0 +1,155 @@
|
||||
# VPS Monitor Agent — Guide d'installation
|
||||
|
||||
L'agent est un service léger à déployer sur chaque VPS à superviser.
|
||||
Il expose une API REST locale que le backend central interroge pour lire l'état des conteneurs Docker et exécuter des actions.
|
||||
|
||||
---
|
||||
|
||||
## Prérequis
|
||||
|
||||
| Dépendance | Version minimale | Installation |
|
||||
|------------|-----------------|--------------|
|
||||
| Python 3 | 3.10+ | `apt install python3 python3-venv` |
|
||||
| Docker | 24+ | [docs.docker.com](https://docs.docker.com/engine/install/) |
|
||||
| curl | — | `apt install curl` |
|
||||
| systemd | — | Inclus sur Debian/Ubuntu/Rocky |
|
||||
|
||||
---
|
||||
|
||||
## Installation rapide (one-liner)
|
||||
|
||||
```bash
|
||||
curl -fsSL https://git.jeanbonapp.com/jeanbon/ScriptVPS/raw/branch/main/vps-monitor/agent/install.sh \
|
||||
| sudo bash
|
||||
```
|
||||
|
||||
La clé API et le port sont générés/affichés automatiquement à la fin.
|
||||
|
||||
---
|
||||
|
||||
## Options disponibles
|
||||
|
||||
```
|
||||
sudo bash install.sh [OPTIONS]
|
||||
|
||||
Options :
|
||||
--key <clé> Clé API à utiliser (générée aléatoirement si omise)
|
||||
--port <port> Port d'écoute de l'agent (défaut : 8001)
|
||||
--branch <nom> Branche du dépôt à utiliser (défaut : main)
|
||||
--update Met à jour l'agent sans changer la configuration
|
||||
--uninstall Supprime complètement l'agent et le service
|
||||
```
|
||||
|
||||
### Exemples
|
||||
|
||||
```bash
|
||||
# Installation avec une clé et un port personnalisés
|
||||
sudo bash install.sh --key "ma-super-cle-secrete" --port 8002
|
||||
|
||||
# Installer depuis une branche de développement
|
||||
sudo bash install.sh --branch develop
|
||||
|
||||
# Mettre à jour vers la dernière version
|
||||
sudo bash install.sh --update
|
||||
|
||||
# Désinstaller
|
||||
sudo bash install.sh --uninstall
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Ce que fait le script
|
||||
|
||||
1. **Télécharge** `agent.py` et `requirements.txt` depuis le dépôt Gitea (branche configurable).
|
||||
2. **Crée** `/opt/vps-monitor-agent/` avec un environnement virtuel Python isolé.
|
||||
3. **Installe** les dépendances Python (`fastapi`, `uvicorn`, `docker`).
|
||||
4. **Génère** `/opt/vps-monitor-agent/.env` avec la clé API et le port (permissions `600`).
|
||||
5. **Configure** et **démarre** le service systemd `vps-monitor-agent`.
|
||||
6. **Affiche** l'adresse IP publique et la clé API à copier dans le backend.
|
||||
|
||||
---
|
||||
|
||||
## Arborescence installée
|
||||
|
||||
```
|
||||
/opt/vps-monitor-agent/
|
||||
├── agent.py # Code de l'agent
|
||||
├── requirements.txt # Dépendances Python
|
||||
├── .env # Clé API et port (chmod 600)
|
||||
└── venv/ # Environnement virtuel Python
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Gestion du service
|
||||
|
||||
```bash
|
||||
# État
|
||||
systemctl status vps-monitor-agent
|
||||
|
||||
# Logs en direct
|
||||
journalctl -u vps-monitor-agent -f
|
||||
|
||||
# Redémarrer
|
||||
systemctl restart vps-monitor-agent
|
||||
|
||||
# Arrêter
|
||||
systemctl stop vps-monitor-agent
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Mise à jour
|
||||
|
||||
```bash
|
||||
sudo bash install.sh --update
|
||||
```
|
||||
|
||||
Le script `--update` :
|
||||
- Retélécharge `agent.py` et `requirements.txt` depuis le dépôt.
|
||||
- Met à jour les dépendances Python si besoin.
|
||||
- Redémarre le service.
|
||||
- **Conserve** la clé API et le port existants.
|
||||
|
||||
Pour mettre à jour le script lui-même avant de lancer `--update` :
|
||||
|
||||
```bash
|
||||
curl -fsSL https://git.jeanbonapp.com/jeanbon/ScriptVPS/raw/branch/main/vps-monitor/agent/install.sh \
|
||||
-o install.sh && sudo bash install.sh --update
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Configuration du backend central
|
||||
|
||||
Après l'installation, renseignez les informations de l'agent dans l'interface web :
|
||||
|
||||
| Champ | Valeur |
|
||||
|-------|--------|
|
||||
| Hôte | IP publique du VPS |
|
||||
| Port | Port choisi (défaut `8001`) |
|
||||
| Clé API | Affichée à la fin de l'installation |
|
||||
|
||||
---
|
||||
|
||||
## Variables d'environnement
|
||||
|
||||
Le fichier `.env` supporte les variables suivantes :
|
||||
|
||||
| Variable | Défaut | Description |
|
||||
|----------|--------|-------------|
|
||||
| `AGENT_API_KEY` | *(généré)* | Clé secrète partagée avec le backend |
|
||||
| `AGENT_PORT` | `8001` | Port TCP d'écoute |
|
||||
|
||||
Pour modifier la configuration sans réinstaller :
|
||||
|
||||
```bash
|
||||
sudo nano /opt/vps-monitor-agent/.env
|
||||
sudo systemctl restart vps-monitor-agent
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Dépôt source
|
||||
|
||||
[https://git.jeanbonapp.com/jeanbon/ScriptVPS](https://git.jeanbonapp.com/jeanbon/ScriptVPS)
|
||||
Reference in New Issue
Block a user