This repository has been archived on 2026-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
Set-OPS/CHANGELOG.md

197 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CHANGELOG — Set-OPS
## 2026-06-22
### Ajouté
- Ajout de `make hote-planifier` pour renseigner un hôte, son VMID et ses groupes sans création ni déploiement immédiat.
- Ajout de `scripts/inventory_rules.py` pour centraliser les règles partagées entre la gestion CLI et l'interface locale d'inventaire.
- Ajout de `docs/dependances-groupes.yml` comme registre exploitable des dépendances causales entre groupes.
- Ajout du contrat `serveurs_powerdns` afin de représenter la capacité DNS centrale requise par `clients_dns`.
- Ajout du premier jalon DNS interne :
- rôle `serveurs_powerdns` avec PowerDNS Authoritative et backend BIND ;
- génération de la zone interne depuis l'inventaire actif ;
- rôle `clients_dns` avec validation de zone et modification resolver protégée ;
- variables de production DNS et runbook `docs/dns-interne.md`.
### Modifié
- Renforcement de la validation d'inventaire :
- un hôte doit être soit planifié, soit actif, mais pas les deux ;
- un hôte actif doit avoir `ansible_host` ;
- un hôte doit porter au moins un groupe opérationnel ;
- les VMID dupliqués sont refusés.
- Conservation du VMID dans l'inventaire lors de `make creer-vm` et `make hote-ajouter`.
- Alignement de l'aide Makefile et de la documentation sur le flux opérateur : planifier, activer/créer, déployer.
- Retrait des groupes génériques obsolètes `serveurs_bases_donnees` et `serveurs_supervision` au profit des groupes de services précis.
- Consolidation des groupes Icinga en `serveurs_icinga` afin de représenter une seule capacité de supervision serveur sur `mon-01`.
- Validation des prérequis actifs avant déploiement d'un groupe, déploiement d'un hôte ou sauvegarde active via l'interface d'inventaire.
- Refonte visuelle de `make inventaire-ui` pour afficher les dépendances causales, les prérequis manquants et l'état déployable ou bloqué des hôtes.
## 2026-06-21
### Ajouté
- Ajout de facilités `make` pour exploiter Ansible sur les VM Debian déployées :
- diagnostic `ping`, `sudo` et `faits` ;
- variables `LIMITE`, `VERIFICATION`, `DIFF`, `ETIQUETTES`, `SAUTER_ETIQUETTES` et `VARIABLES`.
- Ajout de facilités `make` pour inspecter et valider les inventaires Ansible :
- `hote-ajouter` ;
- `hote-groupes` ;
- `hote-afficher` ;
- `inventaire-verifier` ;
- `inventaire-lister` ;
- `inventaire-graphe` ;
- `inventaire-hote` ;
- `inventaire-lab` ;
- `inventaire-production`.
- Ajout de `deployer` et `deployer-groupe` comme commandes opérateur simplifiées pour appliquer les playbooks de groupes.
- Ajout de `scripts/inventory_host.py` pour gérer les entrées d'inventaire et leur appartenance aux groupes sans édition YAML manuelle.
- Ajout de la convention `1 groupe opérationnel = 1 playbook homonyme` avec les premiers playbooks :
- `playbooks/groupes/serveurs_debian.yml` ;
- `playbooks/groupes/serveurs_durcis.yml`.
- Ajout du playbook `playbooks/maintenance/verifier_hote_debian.yml` pour valider une VM Debian 13 gérée par Set-OPS après socle et durcissement.
- Ajout de directives `AGENTS.md` pour formaliser le `Makefile` comme interface opérateur, la convention groupe/playbook, la francisation de la surface opérateur et les points de stabilisation avant commit.
- Ajout du playbook `playbooks/proxmox/cloner_vm_debian.yml` et des cibles `make cloner-vm` / `make creer-vm` pour créer des clones Debian via l'API Proxmox sans stocker de secret dans le dépôt.
- Ajout de `inventories/lab/group_vars/proxmox.yml` pour les paramètres Proxmox non sensibles et de `proxmox.vault.yml.example` pour préparer les secrets API avec Ansible Vault.
- Ajout de `make config` pour renseigner les paramètres Proxmox et créer ou éditer le Vault API depuis le terminal.
### Modifié
- Francisation de la surface opérateur :
- variables `make` ;
- cibles `make` ;
- groupes d'inventaire ;
- chemins des playbooks maison ;
- libellés du script de gestion d'inventaire.
- Documentation du flux de déploiement d'une VM clonée depuis le modèle doré avec les commandes `make`.
- Optimisation de la procédure de bootstrap du modèle Debian 13 pour utiliser Cloud-Init comme source unique de l'identité initiale au lieu de maintenir une création manuelle parallèle du compte et de la clé SSH.
- Simplification de `make cloner-vm` et `make creer-vm` pour que les paramètres Proxmox communs viennent des variables Ansible plutôt que de la ligne de commande ou de l'environnement.
- Ajustement de `make config` pour ne plus redemander les valeurs Cloud-Init déjà portées par le modèle Proxmox.
- Déplacement du VLAN hors de `make config` afin de l'exiger explicitement à chaque création de VM avec `VLAN=...`.
- Retrait des options `DEMANDER_MDP` et `DEMANDER_SUDO` du `Makefile`; le flux suppose SSH par clé et sudo NOPASSWD déjà fonctionnels.
- Retrait des playbooks de couches redondants `playbooks/socle/debian_commun.yml` et `playbooks/durcissement/debian_serveur_durcissement.yml`; la conformité des VM déployées passe maintenant par `playbooks/groupes/`.
- Bonification de `AGENTS.md` pour désigner `playbooks/groupes/` comme source officielle de conformité et éviter les cibles `make` de couches parallèles.
- Simplification de l'aide du `Makefile` pour exposer d'abord les gestes opérateur : inventaire, groupes, déploiement.
- Clarification de `make aide` pour expliquer les différences entre `creer-vm`, `cloner-vm`, `deployer`, `deployer-groupe` et `appliquer`.
- Réorganisation de `make aide` par objets d'exploitation : VM, hôtes, groupes, inventaires, modèle et validation.
- Retrait des commandes opérateur explicites de ping et sudo; ces vérifications sont maintenant implicites dans `deployer` et `preparer-modele`.
- Ajout d'une demande automatique de mot de passe Ansible Vault pour `make cloner-vm` et `make creer-vm` lorsqu'un `proxmox.vault.yml` chiffré est présent.
- Amélioration du message d'erreur lorsque `proxmox.vault.yml` ne peut pas être chargé.
- Ajustement du playbook Proxmox pour laisser apparaître les erreurs API utiles sans masquer entièrement les échecs de clonage.
- Modification de `make deployer HOTE=...` pour appliquer les playbooks correspondant aux groupes de l'hôte.
- Ajout d'une vérification explicite de la bibliothèque Python `proxmoxer` avant les appels API Proxmox.
- Retrait de la taille disque clone des paramètres Proxmox persistés afin de ne pas tenter de réduire un disque hérité du modèle.
- Ajout de la validation inventaire/playbooks pour empêcher un groupe opérationnel avec hôtes sans playbook homonyme.
- Ajout du playbook de groupe `serveurs_web` comme point d'ancrage explicite avant l'ajout d'un rôle web.
- Ajout d'un catalogue de services pour préparer Keycloak, OpenLDAP, PostgreSQL, Loki, Icinga, Prometheus, Grafana, Forgejo, Sendmail, step-ca, Redis, NGINX, Nextcloud et Collabora.
- Ajout des groupes et playbooks homonymes neutres pour les prochains services centraux et intégrations clientes.
- Documentation de l'ordre d'implémentation recommandé des services selon leurs dépendances et intégrations.
- Ajout d'une nomenclature VM/VMID et distinction entre hôtes planifiés et hôtes actifs dans l'inventaire.
- Ajout d'une interface web locale `make inventaire-ui` pour éditer et sauvegarder l'inventaire sans lancer de déploiement.
- Ajustement de la nomenclature planifiée vers des noms d'hôtes par domaine afin de permettre la cohabitation de plusieurs services sur une même VM.
## 2026-06-19
### Ajouté
- Structure initiale globale du dépôt Set-OPS.
- Playbooks de création du template Debian 13 Proxmox.
- Rôles de base Debian.
- Rôles de durcissement template-safe.
- Playbook de vérification.
- Playbook de nettoyage final avant conversion en template.
## 2026-06-20
### Contexte
- Clarification : `Set-OPS` est le dépôt global dexploitation Ansible de Chezlepro Inc.
- Clarification : le template Debian 13 Proxmox est un sous-ensemble du dépôt, pas sa finalité unique.
- Clarification : les services applicatifs spécialisés doivent être installés sur les clones par des playbooks dédiés, pas directement dans le template.
### Ajouté
- Ajout des directives renforcées dans `AGENTS.md` :
- validation Ansible obligatoire ;
- vérification des handlers Ansible ;
- interdiction de déclarer un playbook prêt si `--syntax-check` échoue ;
- préférence pour les correctifs ciblés au lieu des régénérations massives ;
- rappel que `Set-OPS` ne doit pas être restructuré autour dun seul besoin ponctuel.
- Ajout dune logique de template Debian 13 Proxmox :
- `playbooks/modeles_vm/debian13_proxmox_preparer.yml` ;
- `playbooks/modeles_vm/debian13_proxmox_verifier.yml` ;
- `playbooks/modeles_vm/debian13_proxmox_nettoyer.yml`.
- Ajout dune couche de durcissement template-safe :
- AppArmor ;
- auditd ;
- fail2ban SSH ;
- unattended-upgrades ;
- journald ;
- sysctl de sécurité ;
- nftables installé et préparé, mais désactivé par défaut dans le template.
- Ajout dun document darchitecture pour les intégrations futures des VM :
- supervision ;
- métriques ;
- identité ;
- PKI interne ;
- DNS interne.
- Documentation détaillée des ajouts appliqués au modèle doré Debian 13 Proxmox depuis une installation minimale.
- Ajout d'un runbook explicite pour le playbook de préparation du modèle doré Debian 13 Proxmox.
- Ajout d'un runbook manuel précis pour le bootstrap initial de la VM vanille Debian 13 :
- correction des sources APT après installation depuis DVD ;
- installation minimale de `sudo`, SSH, `cloud-init`, `cloud-guest-utils` et `qemu-guest-agent` ;
- utilisation de Cloud-Init pour injecter le compte `ansible`, sa clé SSH, le réseau et le point de bascule vers le `Makefile`.
- Ajout d'un document de cycle de vie des VM Chezlepro :
- VM vanille ;
- goldenisation ;
- clonage ;
- socle ;
- durcissement ;
- conformité continue.
- Ajout de directives `AGENTS.md` pour la convergence des VM existantes et futures :
- cycle de vie des VM ;
- distinction service central et intégration cliente ;
- groupes d'inventaire par intégration ;
- séparation des variables de template, conformité et services.
- Ajout d'un `Makefile` comme interface d'exploitation courante :
- validation ;
- syntax-checks ;
- préparation, vérification et nettoyage protégé du template ;
- socle et durcissement des VM Debian.
- Durcissement SSH du template dès la construction :
- accès par clé publique obligatoire ;
- authentification par mot de passe désactivée ;
- forwarding et tunnels SSH désactivés par défaut ;
- limites de tentatives, sessions et démarrages SSH resserrées.
### Modifié
- Renforcement attendu de `CLAUDE.md` pour rappeler que `AGENTS.md` est la source dautorité principale.
- Clarification du comportement attendu de Claude Code :
- lire lexistant avant modification ;
- vérifier `git status --short` ;
- ne pas faire de régénération massive sans demande explicite ;
- valider les playbooks touchés ;
- signaler les tests non exécutés ;
- mettre à jour `CHANGELOG.md` si pertinent.
- Migration des variables de rôles vers des préfixes propres à chaque rôle pour respecter `ansible-lint`.
- Mise à jour de la variable de confirmation du nettoyage final :
- `template_cleanup_confirm`.
- Correction de la structure du `CHANGELOG.md` pour retirer le titre dupliqué.
- Simplification ciblée de l'arborescence `roles/` :
- retrait des doublons non utilisés sous `roles/base/` ;
- retrait des doublons non utilisés sous `roles/security/` ;
- retrait des doublons non utilisés sous `roles/vm_template/`.
- Ajout d'un renvoi depuis la procédure manuelle vers la justification du golden template.
- Séparation documentaire et opérationnelle entre variables de template et variables de conformité.
- Extension du playbook de groupe `playbooks/groupes/serveurs_debian.yml` pour maintenir le socle commun des VM Debian déployées.
- Mise à jour de la documentation pour exiger un `ciuser` cloud-init avec clé publique avant l'exécution d'Ansible.
- Déplacement des listes de paquets communes dans les defaults des rôles `common_packages` et `hardening_packages`.
- Déplacement des variables de construction du template dans `inventories/lab/group_vars/modeles_vm.yml`.
- Déplacement des variables de conformité Debian dans `inventories/production/group_vars/serveurs_debian.yml`.
- Ciblage du playbook de durcissement sur `serveurs_debian` au lieu de `all`.
- Renforcement du playbook de vérification du modèle doré.
### Corrigé
- Vérification des rôles contenant `notify`.
- Confirmation des handlers SSH requis dans les rôles concernés :
- `roles/ssh_baseline/handlers/main.yml` ;
- `roles/ssh_hardening/handlers/main.yml`.
### Validé
- Vérification que chaque `notify` du template Debian 13 Proxmox pointe vers un handler existant.
- Relance du playbook de préparation du template Debian 13 Proxmox.
- Nettoyage final non lancé.