feat(agent): service systemd DynamicUser + documentation déploiement

- Ajoute deploy/nanometrics-agent.service avec DynamicUser, ProtectSystem,
  PrivateTmp, NoNewPrivileges et RestrictAddressFamilies
- Ajoute deploy/README.md avec procédure d'installation/désinstallation
- Corrige 3 avertissements clippy : iter_kv_map (network.rs) et
  collapsible_match (mqtt.rs)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Gilles Soulier
2026-05-22 11:44:13 +02:00
parent 960fd02fd7
commit 12203f453f
4 changed files with 73 additions and 8 deletions
+43
View File
@@ -0,0 +1,43 @@
# Déploiement de l'agent Nanometrics
## Prérequis
- Debian/Ubuntu amd64
- systemd
## Installation
```bash
# Copier le binaire
sudo cp ../agent/target/release/nanometrics-agent /usr/local/bin/
sudo chmod 755 /usr/local/bin/nanometrics-agent
# Créer la configuration
sudo mkdir -p /etc/nanometrics
sudo cp ../agent/config.toml.example /etc/nanometrics/config.toml
sudo nano /etc/nanometrics/config.toml # ajuster server.ip
# Installer et démarrer le service
sudo cp nanometrics-agent.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable nanometrics-agent
sudo systemctl start nanometrics-agent
sudo systemctl status nanometrics-agent
```
## Vérification
```bash
sudo journalctl -u nanometrics-agent -f
```
## Désinstallation
```bash
sudo systemctl stop nanometrics-agent
sudo systemctl disable nanometrics-agent
sudo rm /etc/systemd/system/nanometrics-agent.service
sudo rm /usr/local/bin/nanometrics-agent
sudo rm -rf /etc/nanometrics
sudo systemctl daemon-reload
```
+24
View File
@@ -0,0 +1,24 @@
[Unit]
Description=Nanometrics Agent — collecte de métriques système
After=network.target
Documentation=https://git.maison43gil.com/gilles/nano_metrics
[Service]
Type=simple
ExecStart=/usr/local/bin/nanometrics-agent /etc/nanometrics/config.toml
Restart=on-failure
RestartSec=5
DynamicUser=yes
ConfigurationDirectory=nanometrics
ConfigurationDirectoryMode=0750
ProtectSystem=strict
ProtectHome=read-only
PrivateTmp=yes
NoNewPrivileges=yes
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
[Install]
WantedBy=multi-user.target