docs(admin): add ops documentation and fix hermes dashboard service

- Remove admin/ from .gitignore (repo is now private)
- Add --tui flag to hermes-dashboard.service template
- Document hermes-tui wrapper, dashboard access, TUI usage

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
alkatrazz 2026-05-12 18:50:43 +02:00
parent 1544a2fc6d
commit dca71144d6
17 changed files with 1979 additions and 4 deletions

136
admin/systeme.md Normal file
View file

@ -0,0 +1,136 @@
# Système — AlmaLinux 9
Commandes générales applicables sur storage-01 et gpu-01.
---
## Services systemd
```bash
# Statut d'un service
sudo systemctl status <service>
# Démarrer / arrêter / redémarrer
sudo systemctl start <service>
sudo systemctl stop <service>
sudo systemctl restart <service>
sudo systemctl reload <service> # rechargement config sans coupure
# Activer / désactiver au démarrage
sudo systemctl enable <service>
sudo systemctl disable <service>
# Lister tous les services actifs
sudo systemctl list-units --type=service --state=running
```
### Services clés par machine
| Machine | Service | Rôle |
|---|---|---|
| storage-01 | `nftables` | Firewall + NAT masquerade cluster → WAN |
| storage-01 | `dnsmasq` | DNS local lab.local |
| storage-01 | `chronyd` | NTP |
| storage-01 | `sshd` | SSH |
| storage-01 | `hermes-agent` | Agent IA (gateway + cron) |
| gpu-01 | `chronyd` | NTP |
| gpu-01 | `sshd` | SSH |
| gpu-01 | `llama-server` | Inférence LLM — Qwen2.5-7B via ROCm 7.x |
---
## Logs
```bash
# Logs d'un service en temps réel
sudo journalctl -u <service> -f
# Logs depuis X minutes
sudo journalctl -u <service> --since '30 minutes ago'
# Logs kernel (erreurs matériel, OOM killer...)
sudo journalctl -k
# Logs du démarrage
sudo journalctl -b
```
---
## Ressources système
```bash
# CPU / RAM / swap
free -h
top
htop # plus lisible (installé via EPEL)
# Disques
df -h
lsblk
# Processus gourmands
ps aux --sort=-%mem | head -10
ps aux --sort=-%cpu | head -10
```
---
## Réseau (NetworkManager)
```bash
# Lister les connexions
nmcli con show
# Détails d'une interface (IP, DNS, gateway)
nmcli dev show enp4s0
# Modifier le DNS d'une interface
sudo nmcli con mod enp4s0 ipv4.dns '192.168.10.1'
sudo nmcli con up enp4s0
# Voir le resolv.conf généré
cat /etc/resolv.conf
```
---
## Mises à jour
```bash
# Voir les mises à jour disponibles
sudo dnf check-update
# Appliquer les mises à jour via Ansible (recommandé — reboot automatique si nouveau kernel)
cd /mnt/nvme0n1/nvme0n1p3/Projets/lab/ansible
../.venv/bin/ansible-playbook -i inventory.yml playbooks/site.yml --tags update
# Manuellement sur une machine
sudo dnf update -y
```
> **Attention post-reboot RAID5** : vérifier que dnsmasq est démarré
> (`systemctl status dnsmasq`). Si `failed`, voir `admin/dnsmasq.md`.
> Les `.pyc` Python peuvent être corrompus sur reboot non-propre —
> symptôme : `bad marshal data` dans les logs d'une app Python.
---
## Infos système rapides
```bash
# Version OS
cat /etc/os-release
# Hostname
hostname
# Uptime
uptime
# Infos CPU
lscpu | grep -E "Model name|Socket|Core|Thread"
# RAM totale
free -h | head -2
```