Funk-lab/admin/systeme.md
alkatrazz a1826fe339 docs: gestion cluster + script funk-cluster mis à jour
- admin/cluster.md : nouveau guide démarrage/arrêt (funk-start/stop/--k8s)
- admin/README.md : lien vers cluster.md
- admin/systeme.md : services llama-server mis à jour (GPU + 2 CPU)
- ansible/roles/litellm/files/funk-cluster : script versionné
  (talosctl fix, storage-01 shutdown, --k8s optionnel, stop timeout)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 02:11:21 +02:00

138 lines
2.8 KiB
Markdown

# 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 GPU — Qwen3-8B via ROCm 7.x (port 1234) |
| gpu-01 | `llama-server-system` | Inférence CPU — Qwen3-1.7B (port 1236, 14 threads) |
| gpu-01 | `llama-server-monitor` | Inférence CPU — Qwen3-1.7B (port 1237, 14 threads) |
---
## 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
```