poste d'exploitation : patient 0 sait lire son propre genome
Fonction `ops` en zone Services-infra, machine ops-01 (10.29.19.41, VMID 129404101). Sans client_backup : le poste ne detient aucun etat propre, tout ce qu'il porte se recompose depuis la forge. Ajoute aussi le group_vars serveur_nginx qui manquait -- sans lui, l'edge publiait la forge derriere un certificat auto-signe. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
8c4a39b8b1
commit
b2d087356c
6 changed files with 65 additions and 1 deletions
|
|
@ -33,4 +33,19 @@ organisation: Alliance Boréale
|
|||
# qu'on amorce — une adresse en @genese.internal serait un piege parfait.
|
||||
amorcage_acces_courriel: sysadmin@chezlepro.ca
|
||||
|
||||
setops_plan_dir: "{{ playbook_dir }}/../../instance/plan"
|
||||
# LE PLAN SUIT L'INVENTAIRE, PAS LE SYMLINK (2026-08-23).
|
||||
#
|
||||
# La valeur precedente etait `{{ playbook_dir }}/../../instance/plan` : le lien
|
||||
# `instance` du moteur, en dur. Tout role lisant le plan lisait donc celui de
|
||||
# l'instance POINTEE PAR LE LIEN, et non celle qu'on deploie.
|
||||
#
|
||||
# CE QUE CA A DONNE. En deployant patient 0 avec `SETOPS_INSTANCE`, le plancher
|
||||
# /etc/hosts de `ops-01` a recu les FQDN de CHEZLEPRO -- auth.chezlepro.internal,
|
||||
# forge.chezlepro.internal... -- pointes sur l'edge de patient 0. Un ecosysteme
|
||||
# annoncait les noms d'un autre. Neuf roles lisent cette variable ; le plancher est
|
||||
# simplement celui qui l'a rendu visible.
|
||||
#
|
||||
# `inventory_dir` est le dossier de l'inventaire REELLEMENT charge. Le plan qui a
|
||||
# engendre cet inventaire est son voisin : les deux ne peuvent plus se contredire,
|
||||
# et l'expression reste juste qu'on passe par le symlink ou par SETOPS_INSTANCE.
|
||||
setops_plan_dir: "{{ inventory_dir }}/../../plan"
|
||||
|
|
|
|||
20
inventories/production/group_vars/serveur_nginx.yml
Normal file
20
inventories/production/group_vars/serveur_nginx.yml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
# L'EDGE DOIT PORTER LES NOMS QU'IL PUBLIE (2026-08-23).
|
||||
#
|
||||
# Sans ce fichier, `client_pki` n'emet le certificat de l'edge qu'avec ses propres noms
|
||||
# (`infra-edge-01.genese.internal`), et nginx retombe sur le certificat auto-signe de
|
||||
# Debian pour tout FQDN expose. Le service repond, la page s'affiche apres un
|
||||
# avertissement — et rien ne signale la panne. C'est ce qui s'est passe ici : la forge de
|
||||
# patient 0 etait publiee derriere un `ssl-cert-snakeoil.pem`, et `git clone` a ete le
|
||||
# premier a refuser, a juste titre.
|
||||
#
|
||||
# `sans_exposition` est derive du plan (les `expose:` des applications).
|
||||
client_pki_sans: >-
|
||||
{{ ([ansible_fqdn | default(ansible_hostname), ansible_hostname, ansible_host]
|
||||
+ (sans_exposition | default([])))
|
||||
| select | unique | list }}
|
||||
serveur_nginx_certificat: "/etc/step/certs/{{ ansible_fqdn | default(ansible_hostname) }}.crt"
|
||||
serveur_nginx_cle: "/etc/step/certs/{{ ansible_fqdn | default(ansible_hostname) }}.key"
|
||||
# Un cert renouvele sur disque reste PERIME en memoire tant que nginx n'a pas recharge.
|
||||
client_pki_reload_services:
|
||||
- nginx
|
||||
|
|
@ -13,11 +13,13 @@ all:
|
|||
infra-dns-01: null
|
||||
infra-edge-01: null
|
||||
infra-pki-01: null
|
||||
ops-01: null
|
||||
client_unbound:
|
||||
hosts:
|
||||
forge-01: null
|
||||
infra-edge-01: null
|
||||
infra-pki-01: null
|
||||
ops-01: null
|
||||
hotes_actifs:
|
||||
hosts:
|
||||
forge-01:
|
||||
|
|
@ -74,6 +76,19 @@ all:
|
|||
proxmox_vlan: 1294
|
||||
proxmox_vmid: 129402101
|
||||
setops_supernet: 10.29.0.0/16
|
||||
ops-01:
|
||||
ansible_host: 10.29.19.41
|
||||
ansible_user: ansible
|
||||
proxmox_cidr: 24
|
||||
proxmox_coeurs: 2
|
||||
proxmox_disque_taille: 20G
|
||||
proxmox_etiquette_vlan: ''
|
||||
proxmox_memoire: 3072
|
||||
proxmox_passerelle: 10.29.19.1
|
||||
proxmox_pont: t29serv
|
||||
proxmox_vlan: 1294
|
||||
proxmox_vmid: 129404101
|
||||
setops_supernet: 10.29.0.0/16
|
||||
hotes_planifies:
|
||||
hosts: {}
|
||||
modeles_vm:
|
||||
|
|
@ -84,18 +99,23 @@ all:
|
|||
infra-dns-01: null
|
||||
infra-edge-01: null
|
||||
infra-pki-01: null
|
||||
ops-01: null
|
||||
serveur_durci:
|
||||
hosts:
|
||||
forge-01: null
|
||||
infra-dns-01: null
|
||||
infra-edge-01: null
|
||||
infra-pki-01: null
|
||||
ops-01: null
|
||||
serveur_forgejo:
|
||||
hosts:
|
||||
forge-01: null
|
||||
serveur_nginx:
|
||||
hosts:
|
||||
infra-edge-01: null
|
||||
serveur_ops:
|
||||
hosts:
|
||||
ops-01: null
|
||||
serveur_powerdns:
|
||||
hosts:
|
||||
infra-dns-01: null
|
||||
|
|
|
|||
|
|
@ -4,3 +4,4 @@ applications:
|
|||
nginx: { groupe: serveur_nginx, hote: infra-edge-01 }
|
||||
powerdns: { groupe: serveur_powerdns, hote: infra-dns-01 }
|
||||
forgejo: { groupe: serveur_forgejo, hote: forge-01, port: 3000, expose: [forge.genese.internal] }
|
||||
ops: { groupe: serveur_ops, hote: ops-01 }
|
||||
|
|
|
|||
|
|
@ -38,3 +38,7 @@ fonctions:
|
|||
infra-dns: { categorie: 4, service: 1 }
|
||||
infra-edge: { categorie: 1, service: 1 }
|
||||
infra-pki: { categorie: 4, service: 2 }
|
||||
# LE POSTE D'EXPLOITATION. Zone Services-infra : il ne sert personne, mais il est
|
||||
# l'infrastructure de l'infrastructure — la machine par laquelle l'ecosysteme se
|
||||
# reconstruit sans dependre du poste de son mainteneur.
|
||||
ops: { categorie: 4, service: 4 }
|
||||
|
|
|
|||
|
|
@ -14,3 +14,7 @@ serveurs:
|
|||
# LA MACHINE QUI PORTE LE GENOME. Son disque n'est pas celui du modele : elle
|
||||
# hebergera les depots de TOUS les ecosystemes de la lignee, pas seulement les siens.
|
||||
forge-01: { fonction: forge, etat: actif, disque: 80G, integrations: [client_backup] }
|
||||
# Le poste d'exploitation ne detient AUCUN etat propre : tout ce qu'il porte se
|
||||
# recompose depuis la forge. Il n'a donc pas de `client_backup` — le sauvegarder
|
||||
# serait sauvegarder une copie de ce qui est deja sauvegarde ailleurs.
|
||||
ops-01: { fonction: ops, etat: actif, disque: 20G }
|
||||
|
|
|
|||
Loading…
Reference in a new issue