SITE-TechnoLibre/COLLECTE.md
Daniel Allaire 2e223f135a Le site de reprise refait sur le modele de SITE-Chezlepro, et sa face publique par relais
- Carte au schema actuel (index 31, zones derivees, publication VLAN 37), equipements reels :
  frontiere requin, noeud maurice, commutateur caillou.
- Neuf machines, memes noms et VMID qu'au site de Chezlepro ; runner des deux locataires.
- maurice : vmbr0 administration (nic0), vmbr1 VLAN-aware pour les VM (nic2) ; stockages nvme
  et miroir (ZFS 2 x 12 To, site-backup-01).
- opnsense.yml : optN mesures (opt1 transit, opt2..opt8 zones, opt9 RELAIS) ; face publique par
  le relais (opt9, RELAIS_GW), adresse du site et pool des locataires ; silence du relais.
- underlay.yml : reseau `relais` (tunnel WireGuard 10.31.60.0/30), hote relais (VPS OVH) et
  cles publiques des deux bouts.
- plan/domaines.yml et plan/mainteneurs.yml ; documentation (README, PREMIERE-HEURE,
  COLLECTE) a jour du releve sur place.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:20:04 -04:00

155 lines
8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# À relever sur place — TechnoLibre
**Tout ce qui pouvait être décidé l'a été le 2026-09-13.** Ce qui suit n'est pas un
choix : ce sont des FAITS que seul le matériel peut dire. Quinze valeurs : deux cartes, l'adresse du WAN, dix noms d'interface, deux paires de jetons.
| Ce qu'il faut | Où le lire | Pourquoi personne ne peut le décider |
|---|---|---|
| `<<IFACE>>` | `ip -br link` sur le nœud | Le nom de la carte réseau dépend du matériel (`eno1`, `enp1s0`…) |
| `<<IP_PUBLIQUE>>` | OPNsense, interface WAN | Donnée par le fournisseur d'accès |
| `<<optN>>` ×10 | OPNsense → Interfaces → Assignments | Les noms `optN` sont attribués dans l'ordre de création |
| `proxmox_api_token_id` | Datacenter → Permissions → API Tokens | Délivré par le nœud à la création |
| `proxmox_api_token_secret` | Idem — **affiché une seule fois** | Ne se relit jamais ; le noter tout de suite |
| `vault_opnsense_api_key` | System → Access → Users → api keys | Délivré par la frontière |
| `vault_opnsense_api_secret` | Téléchargé avec la clé, même fichier | Idem |
**Le piège des `optN`.** Le devis raisonne en ARRIVÉE : une règle posée sur la mauvaise
patte ne correspond jamais, et rien ne le signale. Relever les dix noms exacts avant de
poser quoi que ce soit, y compris celui de la patte face au nœud Proxmox — elle manquait
chez Chezlepro et toutes les règles entrantes des locataires tombaient dans le vide.
**Ce qui est mesuré, pas relevé.** Relevé le 2026-10-13 : `local-lvm` ne fait que 130 Go.
Les VM vont sur `nvme` (LVM-thin, NVMe 465 Go), `site-backup-01` sur `miroir` (ZFS, 2 × 12
To). Revérifier `pvesm status` AVANT de lancer la matérialisation.
**Les quatre jetons vont dans la voûte**, pas dans un fichier de plan :
```
cd ../Set-OPS-public
ANSIBLE_VAULT_IDENTITY_LIST="$(python3 scripts/voutes.py identites)" \
ansible-vault edit ../SITE-Technolibre/underlay.vault.yml
```
Ils y sont déjà déclarés, **vides**. C'est volontaire : une clé absente donne une erreur de
variable indéfinie, une clé vide donne l'assertion du rôle — qui dit quoi manque et où le
prendre. Les dix autres secrets du site sont déjà engendrés.
---
## Ce qui a été décidé, et qu'il suffit de confirmer
| | Valeur | Raison |
|---|---|---|
| Index du site | `31` | Les sites prennent leur propre index depuis le 2026-09-12 |
| Plan d'administration | `10.31.0.0/24` | **Un seul** — frontière `.1`, nœud `.11`, commutateur `.111` — passerelle de tous : la frontière |
| Adresse du poste | une secondaire dans `10.31.0.0/24` | De là, l'API Proxmox, la frontière et le rebond sont tous joignables |
| Nœud Proxmox | `maurice` | Nom d'hôte posé à l'installation (2026-10-13) |
| Frontière | `requin` | Nom d'hôte de l'OPNsense (2026-10-13) |
| Domaine du site | `socle.internal` | Distinct de `technolibre.internal`, qui est au locataire |
| Routage des locataires | `sdn` (EVPN sur le nœud) | Sans commutateur L3, le mode `switch` obligerait la frontière à porter douze interfaces routées |
| ASN | `65031` | Dérivé de l'index — deux sites reliés ne peuvent pas collisionner |
| Contrôleur EVPN | `EVPN0031` | Objet de cluster : nommé d'après le site, pas d'après son premier locataire |
| Ponts | `vmbr0` sur `nic0`, `vmbr1` sur `nic2` | Administration en 1G ; les VLAN des VM en 10G, VLAN-aware |
| Gabarit | `99998` | Le même dans toute la flotte |
---
## 1. Le chiffre qui décide de tout
```
SITE 9 VM 23 Go RAM 816 Go provisionnés
chaque locataire ~14 VM ~37 Go RAM ~460 Go provisionnés
```
Sur trois nœuds ça se répartit. Sur **un seul**, la même machine porte tout — et la RAM est
la contrainte dure (le disque se dégonfle en provisionnement fin, pas la mémoire).
- [x] **RAM physique du nœud** : **256 Go** (2 × 128, ASUS Z10PE-D16 WS) — la mémoire n'est plus la contrainte
- [ ] **Espace libre du stockage `images`** : ______ Go (viser 1,2 To ; 800 Go à la rigueur)
## 2. L'hyperviseur
- [ ] **Nom exact du nœud** tel qu'il apparaît dans l'interface : ______
- [ ] **Version** : `pveversion | head -1` → ______ (attendu : `pve-manager/9.x`)
- [ ] **Noms exacts des stockages** acceptant le contenu `images` : `pvesm status`
- [ ] **Ponts** présents : `ip -br link | grep vmbr`
- [ ] **Adresse de gestion** du nœud : ______
- [ ] **SDN disponible ?** `pvesh get /cluster/sdn` répond sans erreur : oui / non
### Compte d'API
```
pveum user add ansible@pve
pveum aclmod / -user ansible@pve -role Administrator
pveum user token add ansible@pve set-ops --privsep 0
```
- [ ] **Token ID** + **secret** notés (le secret ne s'affiche **qu'une fois**)
## 3. La frontière (OPNsense)
- [ ] **IP publique (WAN)** : ______
- [ ] **Version** : ______
- [ ] **Interfaces libres** pour les zones du site : ______
- [ ] **Clé + secret d'API** créés et notés
- [ ] **Compte `ansible`** en SSH par clé, `sudo` vérifié : `sudo -n -l`
- [ ] **Une patte face au nœud Proxmox** (le lien de transit) : interface ______
## 4. Entre les deux — LA question de forme
Ce qu'il y a entre le nœud Proxmox et l'OPNsense décide du mode de routage :
- [ ] **Un commutateur capable de SVI et d'ACL** → mode `switch`, modèle : ______
- [ ] **Un commutateur simple (VLAN seulement)** → l'OPNsense route tout, mode `switch`
avec l'OPNsense comme routeur
- [ ] **Un lien direct nœud ↔ OPNsense** → trunk 802.1Q, l'OPNsense route tout
- [ ] **SDN EVPN sur le nœud** → indépendant du matériel, mais jamais éprouvé sur un
nœud unique
**Relevé du 2026-10-13** : `caillou`, commutateur de couche 2 seulement (4 × 2,5G, 4 × SFP+),
entre `requin` (`ix0`) et `maurice` (`nic2`) ; les VLAN 31 à 37 et 40 y passent étiquetés,
prouvés par ARP depuis `maurice` (témoin : VLAN 99, sans réponse).
- [ ] **Le VLAN 1 (administration) traverse encore les deux ports SFP+** du lien des zones,
non étiqueté : les diffusions du poste arrivent sur `nic2` et sur `ix0` (mesuré en
faisant émettre le poste pendant l'écoute). Retirer le VLAN 1 des MEMBRES de ces deux
ports, pas seulement du natif ; natif = un VLAN sans autre membre (999). Remis à plus
tard par Daniel le 2026-10-13.
## 5. Cohabitation d'adressage
- [ ] `ip route` sur le poste de Mathieu — quelles plages `10.x` sont déjà prises ?
- [ ] Son réseau bureautique / son VPN utilisent-ils `10.31.x` ou `10.23.x` ? ______
- [ ] Docker présent sur ses machines d'administration ? (`172.17`+ déjà pris)
## 6. Le gabarit
- [ ] Gabarit Debian 13 `modeleSetOPS-minimal` : **fait** / **à faire**
(procédure : `docs/procedure-template-debian13-proxmox.md`, ~30 min)
- [ ] Si fait : **VMID** ______ , **nom** ______ , **stockage** ______
- [ ] Vérifier `machine: q35` et `bios: ovmf` — **ne jamais convertir** un i440fx
## 7. Les accès réseau nécessaires depuis le poste
| Cible | Port | Pour quoi | OK |
|---|---|---|---|
| Hyperviseur | 8006 | créer et détruire les VM | [ ] |
| Hyperviseur | 22 | `pvesh`, `qm`, SDN | [ ] |
| Frontière | 443 | poser les règles par API | [ ] |
| Frontière | 22 | SSH, compte `ansible` | [ ] |
| Zones du site | 22 | SSH vers les VM une fois créées | [ ] |
## 8. Les deux paires de secrets
Par un canal chiffré, **séparément du reste**, et jamais dans git :
- [ ] Token ID + secret de l'hyperviseur → voûte de l'instance
- [ ] Clé + secret de l'API de la frontière → voûte de l'instance
## 9. Ce qui n'a jamais été éprouvé, et qu'il faut regarder de près
- [ ] **Proxmox 9** — le moteur n'analyse aucune version et n'appelle que des chemins
d'API stables, mais rien n'a jamais tourné contre un PVE 9. Surveiller le pare-feu
(`proxmox-firewall` nftables en 9) et le SDN (passé GA).
- [ ] **Nœud unique** — pas de Ceph, pas de migration, le gabarit et les clones sont sur
la même machine. Le SPOF est total et assumé.
- [ ] **Index 31** — celui du SITE. Vérifier qu'aucune plage `10.31.x` n'existe déjà chez
Mathieu (`ip route | grep 10.31`). `make instances` garde la fédération.