feat(post-install): catalogue de profils — paquets, Docker officiel, partages, VM tools (tâche 2 SJ-9)

- mécanisme presetVars (variables fixes injectées au rendu, surchargées par le formulaire)
- 6 profils : base_tools / network_tools / dev_git (listes de paquets, low),
  docker_official (dépôt officiel Debian, confirmation), sharing (Samba/NFS/mDNS, confirmation),
  vm_guest_tools (qemu/vmware)
- 4 templates custom (install-package-groups, docker-official-debian, sharing, vm-guest-tools)
  émettant PKG_INSTALLED/SERVICE_ENABLED/ERR → réutilise buildPostInstallResult
- l'UI post-install générique les expose automatiquement (manifeste → formulaire → run)

tsc 0 · 104 tests · build OK · boot OK (8 profils servis). Clôt le volet moteur tâche 2.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-06 12:40:20 +02:00
parent 4eb0335900
commit 3b16fdd52a
7 changed files with 208 additions and 2 deletions
@@ -0,0 +1,36 @@
# Tâche 2 — SJ-9 : Catalogue post-install (paquets de base, Docker officiel, partages, VM tools)
> Statut : **implémenté** (2026-06-06). tsc 0 · 104 tests · build OK · boot OK (8 profils servis).
> Réf. design : `docs/design/tache2/30-scripts-custom.md §2/§4`, `80-sous-jalons.md` SJ-9.
> Clôt la tâche 2. Non testé en live (installe des paquets / Docker sur une vraie machine).
## Périmètre livré
6 profils ajoutés au registre + 4 templates. L'UI post-install (générique, SJ-8/tâche 3)
les affiche et exécute **sans modification** — manifeste → formulaire → preview → run.
- **Mécanisme `presetVars`** : variables fixes (non-champs) injectées au rendu, surchargées
par les valeurs de formulaire. Permet des listes de paquets prédéfinies sans champ utilisateur.
- **Templates** (`templates/custom/`) :
- `install-package-groups.sh.tpl` (générique, `{{packages}}` shell-safe).
- `docker-official-debian.sh.tpl` (clé GPG keyrings + docker.list par codename + paquets
+ groupe docker + dossier compose ; relogin/reboot signalés).
- `sharing.sh.tpl` (Samba/NFS/mDNS via sections Mustache selon cases cochées).
- `vm-guest-tools.sh.tpl` (`qemu-guest-agent` ou `open-vm-tools`).
- **Manifestes** : `base_tools`, `network_tools`, `dev_git` (presetVars, sans champ, low) ;
`docker_official` (medium, confirmation, champs dockerUser/composeRoot/reboot) ;
`sharing` (medium, confirmation, bools Samba/NFS/mDNS) ; `vm_guest_tools` (low, select agent).
- Tous émettent `PKG_INSTALLED=` / `SERVICE_ENABLED=` / `ERR=``buildPostInstallResult`
(SJ-8) les parse sans changement.
## Tests
3 cas ajoutés : `base_tools` injecte bien sa liste fixe (preset), `sharing` ne rend que les
paquets cochés (sections Mustache), `docker_official` exige confirmation.
## Bilan tâche 2
APT (SJ-0→3) · Docker scan/pull-check/apply-prune-down (SJ-4→6) · profils OS Proxmox/RPi +
sonde + proxy persistant (SJ-7) · post-install moteur+bootstrap+identité (SJ-8) · catalogue
post-install (SJ-9). **Volet moteur tâche 2 complet.** Catalogue détaillé/config fine
(partages, presets réutilisables, `install_profiles`/`machine_profile_state` en base) = tâche 4.