# La première heure — adresses et comptes > **Pour qui :** l'**exploitant**, devant le matériel de TechnoLibre, avant tout déploiement. Proxmox et OPNsense sont déjà installés. Ce document ne fait qu'une chose : leur donner les **bonnes adresses** et les **comptes** dont Set-OPS a besoin pour agir. Rien n'est déployé ici ; on rend seulement les deux machines joignables et pilotables. **L'ordre n'est pas indifférent.** La frontière porte la passerelle de chaque zone : si elle n'est pas posée, le nœud aura des adresses qui ne mènent nulle part, et le diagnostic parlera de réseau alors qu'il s'agira d'une patte manquante. --- ## 0 · Se poser sur son réseau d'administration Avant tout, donner au poste une adresse secondaire — c'est de là que tout se fait. ``` sudo ip addr add 10.31.0.17/24 dev ``` De cette adresse tu atteindras la frontière (`.1`), le nœud (`.41`) et, plus tard, le rebond vers les machines du site. C'est exactement ce que tu fais déjà chez toi avec `10.17.0.17` et `10.37.0.17`. > À relever avant : l'adresse **actuelle** des deux machines, pour pouvoir y revenir si > une manœuvre coupe l'accès. --- ## 1 · La frontière — `portail` ### 1.1 Les huit pattes Une par zone, plus le plan d'administration et le transit. **Le dernier octet est toujours `.1`** : c'est l'invariant dont le devis dérive les règles. | Interface | VLAN | Adresse | Ce qu'elle sert | |---|---|---|---| | administration | — | `10.31.0.1/24` | le poste de l'exploitant, le rebond | | transit | 40 | `10.0.4.1/24` | la sortie des locataires | | pilotage | 31 | `10.31.31.1/24` | le runner du site | | autorité | 32 | `10.31.32.1/24` | l'autorité de certification | | génome | 33 | `10.31.33.1/24` | la forge et le cache | | service | 34 | `10.31.34.1/24` | les noms | | sauvegarde | 35 | `10.31.35.1/24` | le dépôt | | supervision | 36 | `10.31.36.1/24` | le témoin | ### 1.2 Relever les noms d'interface — le piège du jour Dans **Interfaces → Assignments**, noter le nom `optN` attribué à **chacune** des huit, transit compris. > Le devis raisonne en **arrivée** : une règle posée sur la mauvaise patte ne correspond > jamais, et rien ne le signale. Ces neuf noms vont dans `opnsense.yml`, et ils doivent > être exacts. ### 1.3 Le compte d'API **System → Access → Users** → nouvel utilisateur `ansible`, puis **api keys** → créer. Le fichier téléchargé contient la clé et le secret. Ils vont dans la voûte, **jamais** 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 ``` → `vault_opnsense_api_key` et `vault_opnsense_api_secret`, déjà déclarés vides. ### 1.4 L'accès SSH Le rebond vers les machines du site passe par la frontière. Créer l'utilisateur `ansible` avec accès shell, et y poser cette clé publique : ``` ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICf8ecGQ555LuTDaFaqzc3SG+wy0Y8ECqmsIRxemc0dM Cle ansible pour le royaume technolibre ``` Vérifier ensuite, depuis le poste : ``` ssh ansible@10.31.0.1 'echo ok; sudo -n true && echo "sudo ok"' ``` --- ## 2 · Le nœud — `atelier` ### 2.1 Le nom d'hôte `atelier` — c'est ce que le plan déclare, et l'API l'utilise comme identifiant dans ses chemins. Un autre nom oblige à corriger `proxmox-hebergeur.yml`. ### 2.2 Les adresses Un seul pont, **VLAN-aware**, portant tout : | Réseau | VLAN | Adresse | |---|---|---| | administration | — | `10.31.0.41/24` — passerelle `10.31.0.1` | | transit | 40 | `10.0.4.41/24` | | transport VXLAN | 50 | `10.31.50.41/24` | > `vmbr0` doit être **VLAN aware** : sans cela les VLAN des zones ne traverseront pas, et > les VM naîtront sur un réseau muet. ### 2.3 Le 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 ``` Le **secret n'est affiché qu'une fois**. Il va dans la voûte, sous `proxmox_api_token_id` et `proxmox_api_token_secret`. > **Sur `Administrator`, autant le dire franchement.** Le minimum est `VM.Allocate`, > `VM.Clone`, `VM.Config.*`, `Datastore.AllocateSpace` et les droits SDN. Mais l'outil crée > aussi des objets réseau et détruit des VM : partir large le premier jour évite de courir > après des `403` pendant le déploiement. Le resserrer ensuite est un rôle sur mesure, dix > minutes — et c'est un geste à faire, pas une intention. ### 2.4 Le gabarit doré Depuis la clé USB, dossier `gabarits/` : ``` qmrestore vzdump-qemu-9006-*.vma.zst 9006 --storage local-lvm qm template 9006 qm config 9006 | grep -E '^(name|machine|bios|template)' ``` Attendu : `name=modeleSetOPS-minimal`, `machine=q35`, `bios=ovmf`, `template=1`. > `--storage` est **obligatoire** : le disque vient d'un Ceph qui n'existe pas ici. > Et `qm template` est ce qui rend la VM clonable — sans lui, le clonage refusera. ### 2.5 Mesurer avant de matérialiser ``` vgs ; df -h ``` Quinze clones **complets** demandent environ 600 Go. C'est la seule décision de ce document qui peut encore changer, et elle se prend avec un chiffre sous les yeux. --- ## 3 · Renseigner ce qu'on a relevé Dans `opnsense.yml` — les neuf noms d'interface et les deux adresses de la frontière. Dans la voûte — les quatre jetons. Puis, depuis `Set-OPS-public` avec le lien `underlay.yml` pointant sur ce site : ``` make site-intrants # ce que le site exposera à ses locataires python3 scripts/devis_reseau.py # ce qu'il faut poser sur le commutateur python3 scripts/devis_sdn.py --verifier ``` --- ## Ce qui est déjà décidé, et qu'il suffit de confirmer | | | |---|---| | Index du site | `31` | | Domaine | `socle.internal` | | Routage des locataires | `sdn` — EVPN sur le nœud, ASN `65031`, contrôleur `EVPN0031` | | Pont | `vmbr0`, VLAN-aware | | Stockage | `local-lvm` | | Gabarit | `9006` — `99998` est son précédent, jamais cloné | Dix des quatorze secrets du site sont déjà engendrés. Les quatre restants sont les jetons ci-dessus.