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

189 lines
12 KiB
Markdown
Raw Normal View History

2026-06-19 23:31:49 -04:00
# 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.
### 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.
2026-06-21 21:00:42 -04:00
- Consolidation des groupes Icinga en `serveurs_icinga` afin de représenter une seule capacité de supervision serveur sur `mon-01`.
## 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 23:31:49 -04:00
## 2026-06-19
### Ajouté
2026-06-20 15:17:46 -04:00
- 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.
2026-06-20 15:17:46 -04:00
- 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é.