Commit graph

17 commits

Author SHA1 Message Date
b775b7f99d Neutraliser le moteur pour partage public (100% neutre)
Suppression de toute trace Chezlepro de l'outil (roles, scripts, docs
publiques, exemples, LICENSE). Prouve par scan exhaustif : git grep vide
pour chezlepro, asgard/TrueNAS, supernet reel 10.1.x.

Corrige 5 defauts de genericite fonctionnels (motd, app.ini Forgejo,
organisation openldap, nom AC step-ca, et IP reelles codees en dur dans
les defaults de roles -> plage d'exemple 10.0.x). LICENSE -> Alliance
Boreale. Fichiers mainteneur + CHANGELOG conserves (par decision).

La separation moteur/instance tient : OPS-Chezlepro surcharge deja ses
vraies valeurs de topologie. Verifie : make verifier exit 0 (4 tests).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 19:58:00 -04:00
f8e5e4d928 Fermer la couture creer-vm <-> plan (etape 4)
creer-vm HOTE=<hote> ne prend plus qu'un argument : il lit
VMID/IP/CIDR/passerelle/VLAN/stockage/disque/noeud dans l'inventaire
genere (nouvelle sous-commande inventory_host parametres-proxmox), comme
deployer lit ses groupes, et n'ecrit plus dans l'inventaire (plus de
hote-ajouter). Les 3 cibles legacy hote-ajouter/planifier/groupes sont
neutralisees (refus -> plan). Aide + docs alignees. Premier test stdlib
du depot + cible make test, cablee dans make verifier.

Verifie : make verifier exit 0 (4 tests), extraction testee sur
l'inventaire reel + chemins de refus. Clonage reel non execute (Proxmox).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 18:52:04 -04:00
e037b5fdb8 Graver le principe : Set-OPS exploitable sans IA
Impératif (Fractal) : un sysadmin doit pouvoir exploiter Set-OPS sans
aucune IA. Grave a deux endroits car AGENTS.md/CLAUDE.md (fichiers du
mainteneur) ne font pas partie de l'outil livre :
- AGENTS.md, principe #10 : regle pour l'IA-mainteneur (ne jamais
  introduire de fonctionnalite qui exige une IA pour s'en servir) ;
- README : face humaine, qui survit a la livraison sans les fichiers IA.

La doc / make / GUI sont l'interface primaire et complete ; l'IA
n'assiste que le mainteneur. Souverainete jusqu'au bout : ne pas
remplacer la dependance aux geants par une dependance a une IA.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 12:46:08 -04:00
b33e21c0e4 Accueil d'un nouvel hebergeur : QUICKSTART, README reoriente, garde-fou
Avant un test a froid par un sysadmin etranger, on corrige les blocages
d'accueil (mauvaises raisons d'echouer) :

- QUICKSTART.md : parcours lineaire zero -> ecosysteme deploye sur Proxmox
  (modele -> instance -> config -> golden template -> instancier ->
  cloner-vm -> deployer), honnete sur prerequis et seam creation-de-VM.
- README : reoriente "moteur generique pour un hebergeur" (plus "infra
  Chezlepro"), pointeur QUICKSTART.
- Makefile : garde-fou _instance-requise (message utile + liste des
  modeles si l'instance manque, au lieu d'un faux "valide" silencieux) ;
  make aide route vers QUICKSTART.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 11:56:20 -04:00
3b7f3098f2 Decouplage moteur/instance Phase 2b : sortir l'inventaire
L'inventaire (hotes generes, group_vars, vault) quitte inventories/ pour
instance/inventories/. Suivent : ansible.cfg, Makefile (export
SETOPS_INSTANCE ?= instance + chemins derives), scripts (INSTANCE/),
config_proxmox.py, .gitignore. Docs primaires (AGENTS/README/
plan-et-generation/architecture) refletent le layout instance/.

Non destructif : diff vide, ansible-lint 0 echec, make inventaire-verifier
OK. (Docs secondaires a rafraichir ; Phase 3 : deux depots.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 09:16:18 -04:00
ca0f95da28 Mettre les noms de roles et playbooks au singulier
serveurs_* -> serveur_, clients_ -> client_, suffixes pluriels au
singulier (serveur_web_dorsal/frontal, client_metrique, client_journal).

Renommage par tokens exacts : repertoires de roles, playbooks de groupes,
group_vars, variables internes des roles (serveur_nginx_*, conformite
ansible-lint), groupes du plan, constantes de code, docs. Faux-amis
preserves (serveurs_bd, scripts/serveurs.py, fonctions Python). Groupes
d'etat gardes au pluriel (hotes_actifs/planifies, modeles_vm).

Valide : ansible-lint 0 echec (0 var-naming), diff vide de la generation,
node --check, tous les registres. Ajout de .ansible-lint excluant docs/
(registres de donnees, pas du contenu Ansible).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 23:18:52 -04:00
30e405dc92 Doc : passe complete (le depot dit ce qu'il fait)
- docs/plan-et-generation.md (nouveau) : guide central -- modele
  (entites + liens), registres et schemas, reference make/CLI et vues
  GUI, flux editer-le-plan -> instancier -> appliquer, garde-fous.
- AGENTS.md : section « Le plan et la generation de l'inventaire »
  (regle d'or : hosts.yml est genere, ne pas l'editer).
- README.md : section plan + remplacement du flux legacy
  hote-planifier/ajouter par le flux par le plan ; liste des registres.
- Rafraichissement architecture-set-ops.md, nomenclature-vm.md,
  catalogue-services.md ; terminologie domaine -> fonction dans la prose.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 22:46:48 -04:00
5dd3215d91 Formaliser l'identite d'ecosysteme numerique souverain
Acter dans les docs d'autorite que Set-OPS ne se limite plus a
l'exploitation mais definit et construit l'ecosysteme numerique
souverain de Chezlepro Inc.

- AGENTS.md : nouvelle section « Mission et identite » (piliers,
  proprietes visees, nuances honnetes : pas auto-repare, defini avant
  deploiement, registres = source unique).
- README.md : section « Mission » + « Domaines prevus » rationalise en
  « Portee transverse » (retire ce que les piliers couvrent deja).
- CHANGELOG.md : entree du 2026-06-22.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 19:58:44 -04:00
8f6de3ebe2 Construire l'ecosysteme de services et outiller l'inventaire
Registres (source unique):
- docs/nomenclature.yml: domaines, VMID, plan d'adressage 10.1.0.0/16 segmente.
- docs/bases-donnees.yml: bases applicatives (1 appli -> 1 base -> 1 owner -> 1 DSN).

Roles de service:
- Reseau/edge/PKI/mail: nginx, step_ca, sendmail.
- Donnees/identite: postgresql (consommateur du registre BD), redis, openldap, keycloak.
- Observabilite: prometheus, loki, grafana.
- Supervision: icinga (coeur; Icinga Web 2 differe). Forge: forgejo.

Integrations clientes:
- clients_metriques, clients_journaux, clients_pki, clients_ldap, clients_smtp.

Inventaire et outillage:
- make inventaire-ui: refonte (cartes, theme sombre, onglets, vue Chaine VM->groupes->
  playbooks->roles), saisie du provisioning, auto-proposition depuis la nomenclature,
  deploiement securise (verifier/deployer, jeton anti-CSRF, verrou, mot de passe vault),
  robustesse reseau (connexions fermees, favicon).
- Makefile: cible verifier-deploiement; detection d'un group_vars de production chiffre.
- Scission serveurs_web -> serveurs_web_frontaux/dorsaux; migration de l'adressage vers
  10.1.x; retrait des hotes de test; planification des hotes; requirements.yml.

Chaque role valide en --syntax-check et ansible-lint (profil production).
Secrets references depuis Ansible Vault (jamais en clair); roles non testes live.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 18:06:11 -04:00
6fd0efd88d Implementer le premier jalon DNS interne 2026-06-21 21:56:28 -04:00
1d25338d26 Ajouter les dependances causales des groupes 2026-06-21 21:31:03 -04:00
72c3ac6007 Consolider le flux operationnel des inventaires 2026-06-21 20:47:44 -04:00
f941b66d39 Preparer la gestion planifiee des services 2026-06-21 20:35:03 -04:00
61e2c7ca67 Structurer l'exploitation Ansible Chezlepro 2026-06-21 15:13:45 -04:00
e8299dfc62 Ajout de nouveaux playbooke et rôles 2026-06-20 15:17:46 -04:00
1823341c94 Setup initial avec ansible 2026-06-19 23:31:49 -04:00
9213a140d5 Initial commit 2026-06-19 18:05:01 -04:00