SITE-TechnoLibre/plan/10-intrants.yml

65 lines
3 KiB
YAML
Raw Normal View History

# Intrants de base du SITE-Technolibre — les valeurs-racines dont tout le reste derive.
# Memes cles qu'au site de Chezlepro (refait sur son modele le 2026-10-12).
# Ce qui ne peut exister qu'apres un premier deploiement est laisse vide, et dit quand le poser.
---
# LE DOMAINE INTERNE DU SITE, pas celui d'un locataire. Chezlepro utilise `genese.internal` ;
# deux sites qui porteraient le meme nom de zone ne pourraient pas coexister dans un meme
# resolveur — et une reprise les fait justement se rencontrer.
site : toutes les valeurs decidables sont posees, restent les faits du materiel Terrain vierge, factory settings : ce qui relevait d une DECISION a ete tranche. Il reste treize valeurs, et ce sont des faits que seul le materiel peut dire. Decisions : - noeud `atelier`, frontiere `portail`, domaine du site `socle.internal` (distinct de technolibre.internal, qui appartient au locataire) - pont unique vmbr0 VLAN-aware : sans seconde carte, d autres ponts ne separeraient rien - gabarit 99998, le meme dans toute la flotte ; stockage local-lvm, le seul present sur un noeud unique - rebond ansible@10.31.0.1, noeud 10.31.0.41 routage_tenants: sdn — et c est le point qui demandait un arbitrage. Sans commutateur de niveau 3, le mode `switch` ferait porter les SVI a la frontiere : six interfaces VLAN de locataire EN PLUS de ses six pattes de site, et les ACL entre elles a verifier a la main. En EVPN, le routage et le filtrage inter-zone du locataire vivent sur le noeud, la frontiere ne voit que le transit, et le moteur sait deja poser tout ca. L objection « EVPN sur un seul noeud, c est un maillage sans pair » se retourne : un VTEP unique n a aucune session a etablir. CONSEQUENCE MESUREE AVANT LA VISITE, PAS PENDANT. En mode sdn, devis_opnsense derive le prochain saut des routes de la frontiere depuis proxmox_sdn.sortie_primaire — qui vit dans proxmox-hebergeur.yml, absent de ce depot. La derivation rendait une chaine VIDE : le devis se tait au lieu d ecrire faux, mais la frontiere restait sans route de retour vers le locataire. Le fichier est cree ; la derivation rend maintenant 10.0.4.41. ASN 65031 et controleur EVPN0031, derives de l index du site plutot que repris de Chezlepro (65000) : les deux sites ont vocation a etre relies, et deux clusters qui echangent des routes avec le meme numero d AS produisent une panne dont le message ne parle pas d AS. COLLECTE.md ne demande plus que ce qui se releve : le nom de la carte reseau, les deux adresses de la frontiere, les neuf noms d interfaces optN. Plus un chiffre a mesurer avant de materialiser — quinze clones complets font environ 600 Go sur local-lvm. Federation : 5 instances, aucun index en collision (13, 17, 23, 29, 31, 37). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-13 14:16:37 -04:00
domaine_interne: socle.internal
organisation: TechnoLibre
# Le resolveur que les VM interrogent a leur premiere mise en route, avant que celui du site
# n'existe : la frontiere, comme chez Chezlepro.
dns_amorcage: 10.31.0.1
# Par ou l'administration entre : la patte d'administration de la frontiere.
site : toutes les valeurs decidables sont posees, restent les faits du materiel Terrain vierge, factory settings : ce qui relevait d une DECISION a ete tranche. Il reste treize valeurs, et ce sont des faits que seul le materiel peut dire. Decisions : - noeud `atelier`, frontiere `portail`, domaine du site `socle.internal` (distinct de technolibre.internal, qui appartient au locataire) - pont unique vmbr0 VLAN-aware : sans seconde carte, d autres ponts ne separeraient rien - gabarit 99998, le meme dans toute la flotte ; stockage local-lvm, le seul present sur un noeud unique - rebond ansible@10.31.0.1, noeud 10.31.0.41 routage_tenants: sdn — et c est le point qui demandait un arbitrage. Sans commutateur de niveau 3, le mode `switch` ferait porter les SVI a la frontiere : six interfaces VLAN de locataire EN PLUS de ses six pattes de site, et les ACL entre elles a verifier a la main. En EVPN, le routage et le filtrage inter-zone du locataire vivent sur le noeud, la frontiere ne voit que le transit, et le moteur sait deja poser tout ca. L objection « EVPN sur un seul noeud, c est un maillage sans pair » se retourne : un VTEP unique n a aucune session a etablir. CONSEQUENCE MESUREE AVANT LA VISITE, PAS PENDANT. En mode sdn, devis_opnsense derive le prochain saut des routes de la frontiere depuis proxmox_sdn.sortie_primaire — qui vit dans proxmox-hebergeur.yml, absent de ce depot. La derivation rendait une chaine VIDE : le devis se tait au lieu d ecrire faux, mais la frontiere restait sans route de retour vers le locataire. Le fichier est cree ; la derivation rend maintenant 10.0.4.41. ASN 65031 et controleur EVPN0031, derives de l index du site plutot que repris de Chezlepro (65000) : les deux sites ont vocation a etre relies, et deux clusters qui echangent des routes avec le meme numero d AS produisent une panne dont le message ne parle pas d AS. COLLECTE.md ne demande plus que ce qui se releve : le nom de la carte reseau, les deux adresses de la frontiere, les neuf noms d interfaces optN. Plus un chiffre a mesurer avant de materialiser — quinze clones complets font environ 600 Go sur local-lvm. Federation : 5 instances, aucun index en collision (13, 17, 23, 29, 31, 37). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-13 14:16:37 -04:00
rebond: ansible@10.31.0.1
# LE NOM REEL DE LA CLE. Celle-ci existe sur le poste et sert deja a la flotte de TechnoLibre.
cle_ssh: ~/.ssh/id_ed25519_ansible_technolibre
integrations_exemptes: {}
# La cle publique du runner du site — GENEREE au premier deploiement de `site-ops-01`, puis
# recopiee ici (et dans `cles_admin`). Vide au depart : c'est normal.
runner_cle_publique: ""
# LA CLE D'HOTE SSH DE LA FORGE, epinglee par le runner avant de lire un depot prive. Relevee
# A LA SOURCE le 2026-10-13, apres le premier deploiement de `site-forge-01` — jamais recopiee
# de memoire, et identique a ce que la forge presente sur le reseau :
#
# ssh ansible@10.31.33.11 cat /etc/ssh/ssh_host_ed25519_key.pub
forge_ssh_cle_hote: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMQ5lQPeCw1enlogZUk8AZax4mk2wMMa/C5Wd9ioXq9S"
# LE GABARIT. Sur un noeud unique il n'y a pas d'autre machine pour le porter : ne jamais le
# personnaliser, et ne jamais convertir une VM i440fx en q35.
gabarit:
# LE MEME GABARIT QUE LE RESTE DE LA FLOTTE. 99998 est son PRECEDENT — garde ici pour que
# l'on sache d'ou l'on vient, jamais clone.
vmid: 9006
precedent: 99998
nom: modeleSetOPS-minimal
noeud: maurice
machine: q35
bios: ovmf
stockage: nvme
voute du site : dix secrets engendres, quatre a relever, et la porte fermee avant Le site n avait ni voute ni cle. C etait le seul blocage TOTAL avant la visite — et le seul qui ne demandait aucun Internet : sans elle, `make site-appliquer` ne passe aucun secret et chaque role echoue sur son assertion. Quatorze secrets, comme le site de Chezlepro : - dix engendres sur le poste (autorite de certification et son provisionneur, cle et jeton interne de la forge, ses comptes d administration, base et jeton d API de la supervision, phrase du depot de sauvegarde) ; - une paire ed25519 pour la sauvegarde — la moitie PRIVEE en voute, la PUBLIQUE au plan, ou elle est publiable sans risque et ou elle est la seule a pouvoir servir ; - quatre laisses VIDES, parce qu ils ne s engendrent pas : ce sont des jetons que le materiel delivre. Vides plutot qu absents, deliberement — une cle absente donne une erreur de variable indefinie, une cle vide donne l assertion du role, qui dit QUOI manque et OU le prendre. .gitignore ALIGNE SUR CHEZLEPRO, ET AVANT DE POSER LA VOUTE. Ce depot n excluait que `*.vault.yml.bak` : `underlay.vault.yml` aurait ete versionnable. Le defaut etait dormant parce que le fichier n existait pas encore — il se serait reveille au premier `git add -A`, c est-a-dire au moment ou l on cesse de regarder. On ferme la porte avant de poser ce qu elle protege. Verifie : la voute se relit par le chemin NORMAL (la liste d identites, pas la cle directe), quatorze secrets, aucun manquant, et la cle privee de sauvegarde est bien une cle. Le chiffrement a ete fait avec ses deux flux rediriges vers des fichiers — `ansible-vault` echoue en SILENCE sur une sortie non bloquante, et la voute paraitrait ecrite en etant identique a l octet. COLLECTE.md compte desormais dix-sept valeurs a relever, dont les quatre jetons. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-13 14:37:37 -04:00
# LA MOITIE PUBLIQUE de la paire de sauvegarde du site. Sa jumelle privee vit dans
# `underlay.vault.yml` — jamais versionnee. C'est cette cle-ci que le depot autorise.
voute du site : dix secrets engendres, quatre a relever, et la porte fermee avant Le site n avait ni voute ni cle. C etait le seul blocage TOTAL avant la visite — et le seul qui ne demandait aucun Internet : sans elle, `make site-appliquer` ne passe aucun secret et chaque role echoue sur son assertion. Quatorze secrets, comme le site de Chezlepro : - dix engendres sur le poste (autorite de certification et son provisionneur, cle et jeton interne de la forge, ses comptes d administration, base et jeton d API de la supervision, phrase du depot de sauvegarde) ; - une paire ed25519 pour la sauvegarde — la moitie PRIVEE en voute, la PUBLIQUE au plan, ou elle est publiable sans risque et ou elle est la seule a pouvoir servir ; - quatre laisses VIDES, parce qu ils ne s engendrent pas : ce sont des jetons que le materiel delivre. Vides plutot qu absents, deliberement — une cle absente donne une erreur de variable indefinie, une cle vide donne l assertion du role, qui dit QUOI manque et OU le prendre. .gitignore ALIGNE SUR CHEZLEPRO, ET AVANT DE POSER LA VOUTE. Ce depot n excluait que `*.vault.yml.bak` : `underlay.vault.yml` aurait ete versionnable. Le defaut etait dormant parce que le fichier n existait pas encore — il se serait reveille au premier `git add -A`, c est-a-dire au moment ou l on cesse de regarder. On ferme la porte avant de poser ce qu elle protege. Verifie : la voute se relit par le chemin NORMAL (la liste d identites, pas la cle directe), quatorze secrets, aucun manquant, et la cle privee de sauvegarde est bien une cle. Le chiffrement a ete fait avec ses deux flux rediriges vers des fichiers — `ansible-vault` echoue en SILENCE sur une sortie non bloquante, et la voute paraitrait ecrite en etant identique a l octet. COLLECTE.md compte desormais dix-sept valeurs a relever, dont les quatre jetons. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-13 14:37:37 -04:00
backup_pubkey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINf8O1ASPbRE2J+3uOrdJBRFJZCap8WeHjupdboI1KKF sauvegarde site-technolibre"
# D'ou l'administration SSH est admise : le plan d'administration du site.
nftables_admin_ssh:
- 10.31.0.0/24
site : toutes les valeurs decidables sont posees, restent les faits du materiel Terrain vierge, factory settings : ce qui relevait d une DECISION a ete tranche. Il reste treize valeurs, et ce sont des faits que seul le materiel peut dire. Decisions : - noeud `atelier`, frontiere `portail`, domaine du site `socle.internal` (distinct de technolibre.internal, qui appartient au locataire) - pont unique vmbr0 VLAN-aware : sans seconde carte, d autres ponts ne separeraient rien - gabarit 99998, le meme dans toute la flotte ; stockage local-lvm, le seul present sur un noeud unique - rebond ansible@10.31.0.1, noeud 10.31.0.41 routage_tenants: sdn — et c est le point qui demandait un arbitrage. Sans commutateur de niveau 3, le mode `switch` ferait porter les SVI a la frontiere : six interfaces VLAN de locataire EN PLUS de ses six pattes de site, et les ACL entre elles a verifier a la main. En EVPN, le routage et le filtrage inter-zone du locataire vivent sur le noeud, la frontiere ne voit que le transit, et le moteur sait deja poser tout ca. L objection « EVPN sur un seul noeud, c est un maillage sans pair » se retourne : un VTEP unique n a aucune session a etablir. CONSEQUENCE MESUREE AVANT LA VISITE, PAS PENDANT. En mode sdn, devis_opnsense derive le prochain saut des routes de la frontiere depuis proxmox_sdn.sortie_primaire — qui vit dans proxmox-hebergeur.yml, absent de ce depot. La derivation rendait une chaine VIDE : le devis se tait au lieu d ecrire faux, mais la frontiere restait sans route de retour vers le locataire. Le fichier est cree ; la derivation rend maintenant 10.0.4.41. ASN 65031 et controleur EVPN0031, derives de l index du site plutot que repris de Chezlepro (65000) : les deux sites ont vocation a etre relies, et deux clusters qui echangent des routes avec le meme numero d AS produisent une panne dont le message ne parle pas d AS. COLLECTE.md ne demande plus que ce qui se releve : le nom de la carte reseau, les deux adresses de la frontiere, les neuf noms d interfaces optN. Plus un chiffre a mesurer avant de materialiser — quinze clones complets font environ 600 Go sur local-lvm. Federation : 5 instances, aucun index en collision (13, 17, 23, 29, 31, 37). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-13 14:16:37 -04:00
supervision_courriel: sysadmin@technolibre.ca
# Les cles admises sur les machines du site, en plus de celle de l'exploitant. Le runner du
# site s'y ajoute des que sa cle existe (premier deploiement de `site-ops-01`).
cles_admin: []
# LA REPLICATION DU DNS PUBLIC AVEC UN SITE PAIR (2026-09-16). Deux serveurs de noms, sur deux
# reseaux distincts : c'est ce qui garde un domaine joignable quand l'un tombe. Declaree des
# deux cotes, ou pas du tout. `inactif` : rien n'est emis tant que le pair n'existe pas.
dns_public_pairs:
- site: SITE-Chezlepro
etat: inactif