Set-OPS-Public/roles/serveur_step_ca
Daniel Allaire 15cdb7d454
Some checks are pending
verifier / verifier (push) Waiting to run
patient 0 debout — et quatre defauts que seul un ecosysteme DIFFERENT pouvait montrer
Quatre machines, zero echec, la forge repond (service actif, ecoute 3000, HTTP 200).
forge-01 121 taches, infra-pki-01 109, infra-edge-01 92, infra-dns-01 84.

1. UN TIERS INTERMITTENT ARRETAIT TOUT. `packages.smallstep.com` repond une fois sur deux ;
   `get_url` abandonne a 10 s sans reprise. Mesure AVANT d'accuser le reseau : DNS
   resolvait, la poignee TLS aboutissait, 138 Ko depuis deb.debian.org passaient en 0,09 s,
   et le chemin acceptait 1450 octets en refusant 1500 — l'attendu exact en overlay. Le
   reseau n'y etait pour rien. Reprises posees sur les trois telechargements du chemin
   critique (serveur_step_ca, client_pki, serveur_forgejo). Une dizaine d'autres restent
   sans reprise : liste dans le CHANGELOG.

2. UN `register` A ECRASE UN CHEMIN DE FICHIER. En posant la reprise, j'ai enregistre dans
   `client_pki_cle`, nom que le role utilisait deja pour la cle privee. L'ecart s'est vu 70
   taches plus loin : `step ca certificate` recevait un dict serialise a la place du
   fichier et refusait « too many positional arguments ». Un register ecrit dans l'espace
   de noms de TOUT le role.

3. LE SSO SE DECLARAIT AU LIEU DE SE DERIVER. `serveur_forgejo_oidc_actif: true` en dur
   faisait cabler une source OAuth2 vers un Keycloak inexistant. Derive desormais de
   l'inventaire. Quatrieme manifestation en deux jours de la meme hypothese — le moteur
   supposait l'ecosysteme COMPLET — apres les intrants (P32), les bases (P35) et les
   dependances causales.

AUCUN de ces defauts n'etait visible sur Chezlepro, qui porte tout et tournait deja. Ils ne
pouvaient apparaitre qu'au premier ecosysteme DIFFERENT.

make verifier 41 OK, 0 echec, 0 saute ; make test inchange.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 02:53:44 -04:00
..
defaults Câbler les secrets des rôles à leur variable de voûte (vault_*) 2026-07-01 21:29:18 -04:00
handlers Rendre le dry-run (--check) fiable sur les rôles applicatifs 2026-07-01 21:01:53 -04:00
meta authentification : chaque rôle déclare sa position, gardé par P29 2026-08-03 17:05:43 -04:00
tasks patient 0 debout — et quatre defauts que seul un ecosysteme DIFFERENT pouvait montrer 2026-08-23 02:53:44 -04:00
templates Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00
README.md Set-OPS — moteur d'ecosystemes numeriques souverains (Alliance Boreale) 2026-06-24 20:17:46 -04:00

serveur_step_ca

Autorité de certification interne Smallstep step-ca avec provisioner ACME, pour émettre les certificats internes (client_pki est le client ACME).

Rôle

  • Ajoute le dépôt apt officiel Smallstep (clé + source deb822) et installe step-ca + step-cli.
  • Crée l'utilisateur système step et STEPPATH=/etc/step-ca.
  • Déploie les mots de passe (CA et provisioner) depuis Vault.
  • Initialise l'AC une seule fois (step ca init, standalone + provisioner ACME), garde-fou creates: config/ca.json.
  • Déploie l'unité systemd durcie officielle et démarre le service.

Secrets requis (Vault)

Obligatoires dès l'installation :

serveur_step_ca_password: "{{ vault_step_ca_password }}"
serveur_step_ca_provisioner_password: "{{ vault_step_ca_provisioner_password }}"

À placer dans instance/inventories/production/group_vars/serveur_step_ca/vault.yml (chiffré), les variables en clair référençant ces secrets dans .../serveur_step_ca/main.yml.

Variables principales

Variable Défaut Rôle
serveur_step_ca_nom Set-OPS Internal CA Nom de l'AC
serveur_step_ca_dns FQDN + IP SAN/DNS du certificat de l'AC
serveur_step_ca_adresse :8443 Adresse d'écoute
serveur_step_ca_provisioner admin@exemple.internal Provisioner JWK admin
serveur_step_ca_acme true Ajoute un provisioner ACME

Notes

  • La ligne step ca init utilise les drapeaux documentés par Smallstep ; selon la version de step-cli installée, un ajustement mineur peut être nécessaire. L'init ne s'exécute qu'une fois (présence de config/ca.json).
  • L'unité systemd provient de la doc de production Smallstep (sandboxing systemd).
  • Émission/renouvellement côté clients : voir le futur rôle client_pki (ACME).

Hors périmètre

  • Sauvegarde/HA de l'AC, RA (registration authority), rotation des clés racine.