bafb085995
- templates proxmox/ (update-analyze: dépôts PVE ; full-upgrade) et raspbian/ (update-analyze: espace disque ; full-upgrade) - execute résout les actions APT par profil OS (resolveTemplate) → proxmox/ raspbian si dispo, sinon fallback apt/ (non-régression debian/ubuntu vérifiée) - machine_probe (lecture seule) : template + parseProbe/proposeCorrections (TDD) → propose os_family/machine_kind/virtualization, persiste machine_hardware, n'applique jamais auto ; branche execute + allowlist route - apt_proxy_persistent : ActionType + template idempotent (/etc/apt/apt.conf.d/ 01proxy, backup) + TemplateVars.aptProxyUrl + allowlist route tsc 0 · 95 tests · build OK · résolution OS vérifiée. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
40 lines
2.4 KiB
Markdown
40 lines
2.4 KiB
Markdown
# Tâche 2 — SJ-7 : Profils OS Proxmox/RPi + machine_probe + proxy persistent
|
|
|
|
> Statut : **implémenté** (2026-06-06). tsc 0 · 95 tests · build OK. Résolution OS vérifiée.
|
|
> Réf. design : `docs/design/tache2/60-profils-os-machine.md`, `80-sous-jalons.md` SJ-7.
|
|
|
|
## Périmètre livré (additif, fallback base préservé)
|
|
|
|
- **Templates OS-spécifiques** :
|
|
- `templates/proxmox/update-analyze.sh.tpl` (détection dépôts PVE enterprise/no-subscription)
|
|
+ `full-upgrade.sh.tpl` (dist-upgrade kernel/proxmox-ve/Ceph).
|
|
- `templates/raspbian/update-analyze.sh.tpl` (contrôle espace disque carte SD)
|
|
+ `full-upgrade.sh.tpl` (`apt full-upgrade`). `rpi-update` volontairement non utilisé.
|
|
- **Résolution par profil OS dans `execute.ts`** : les actions APT passent par
|
|
`resolveTemplate(file, osFamily)` → `proxmox/`/`raspbian/` si dispo, sinon `apt/`.
|
|
Vérifié : proxmox/raspbian pris ; debian/ubuntu → fallback `apt/` (non-régression jalon 1).
|
|
`refresh.ts` résolvait déjà `update-analyze`.
|
|
- **`machine_probe`** (action lecture seule) :
|
|
- `templates/apt/machine-probe.sh.tpl` (os-release, arch, systemd-detect-virt, /etc/pve,
|
|
/proc/cpuinfo RPi, lspci GPU, ip addr).
|
|
- `machineProbe.ts` : `parseProbe` + `proposeCorrections` (TDD, 4 cas : Proxmox/RPi/VM KVM)
|
|
→ propose `os_family`/`machine_kind`/`virtualization`. `runProbe` persiste les faits
|
|
matériels (`machine_hardware` gpus/network) et renvoie un diff **jamais appliqué auto**.
|
|
- Branche `execute` (archiveExecution) + allowlist route.
|
|
- **Proxy APT persistant** (`apt_proxy_persistent`) :
|
|
- ActionType ajouté ; `templates/apt/apt-proxy-persistent.sh.tpl` écrit
|
|
`/etc/apt/apt.conf.d/01proxy` (idempotent, sauvegarde horodatée de l'existant).
|
|
- `TemplateVars.aptProxyUrl` ; rendu avec `m.aptProxyUrl` ; allowlist route.
|
|
|
|
## Sécurité / invariants
|
|
|
|
- `machine_probe` ne modifie rien ; les corrections OS/kind sont **proposées**, l'opérateur
|
|
garde le dernier mot (pas d'application auto).
|
|
- Proxy persistant = action explicite idempotente avec backup ; l'URL n'est pas un secret.
|
|
- Aucun secret dans les templates ; fallback `base` garantit la non-régression Debian/Ubuntu.
|
|
|
|
## Reste tâche 2
|
|
|
|
SJ-8 / SJ-9 (post-install : bootstrap/identité, paquets de base/Docker officiel/partages/VM tools).
|
|
UI : bouton « Sonder » + affichage des propositions, sélecteur de proxy persistant = tâche 3.
|