# 2026-05-09 — Initialisation du repo et premières machines

## Accompli

### Poste perso
- Hermes Agent configuré (Setup 1 — LM Studio local `127.0.0.1:1234`)
- `~/.ssh/config` créé avec alias `s01`, `g01`, `c01`, `c02`, `c03`
- `/etc/hosts` : entrées cluster à vérifier (commande tee interrompue)

### Infra physique
- storage-01 installé AlmaLinux 9.7 — `192.168.1.200` (WAN) / `192.168.10.1` (LAN cluster)
- gpu-01 installé AlmaLinux 9.7 — `192.168.10.20`
- Switch GS308EV4 configuré : tous ports Access, storage-01 sur deux NICs physiques (`enp4s0` WAN / `enp6s0f3u2c2` LAN)
- Connectivité LAN cluster : storage-01 ↔ gpu-01 ✅
- Internet depuis gpu-01 via NAT storage-01 ✅

### Repo lab-infra
- `git init` + `.gitignore`
- Python venv `.venv/` + `ansible-core 2.17`
- Structure `ansible/` complète : ansible.cfg, inventory.yml, group_vars, host_vars, playbooks, requirements.yml
- Collections : `ansible.posix`, `community.general`
- `Makefile` : ping, check, apply, vault-*
- `.vault_pass` créé localement (gitignored)
- Clé SSH déployée sur les deux machines

### Rôles Ansible
- **`common`** appliqué sur storage-01 et gpu-01 : hostname, EPEL, packages, user ansible, sudo, sshd durci, chrony
- **`gateway`** appliqué sur storage-01 : firewalld désactivé, IP forwarding, nftables NAT
- Stubs vides créés pour tous les rôles restants

## Problèmes rencontrés / Solutions

| Problème | Solution |
|---|---|
| `stdout_callback: yaml` déprécié dans community.general 12 | Remplacé par `stdout_callback = ansible.builtin.default` + `result_format = yaml` |
| nftables ignoré — firewalld écrase les règles | Ajout de `Stop and disable firewalld` en première tâche du rôle `gateway` |
| nftables charge `/etc/sysconfig/nftables.conf` sur AlmaLinux 9, pas `/etc/nftables.conf` | Corrigé dans le template dest |
| `htop` absent des repos de base AlmaLinux 9 | Ajout activation EPEL avant install packages dans `common` |
| `ansible_host` dans `host_vars/` écrase l'inventaire | Corrigé pour utiliser l'IP WAN `192.168.1.200` |
| gpu-01 sans DNS (pas de dnsmasq encore) | DNS temporaire `8.8.8.8` configuré via nmcli |
