feat(os): profils Proxmox/RPi + machine_probe + proxy persistent (tâche 2 SJ-7)
- 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>
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
# Proxy APT persistant : écrit /etc/apt/apt.conf.d/01proxy (idempotent, sauvegarde l'existant).
|
||||
# Action explicite (écriture disque). aptProxyUrl est fourni par le backend (jamais un secret).
|
||||
export LC_ALL=C
|
||||
CONF=/etc/apt/apt.conf.d/01proxy
|
||||
echo "===SU:PROXY_BEFORE==="
|
||||
[ -f "$CONF" ] && cat "$CONF" || echo "ABSENT"
|
||||
echo "===SU:PROXY_WRITE==="
|
||||
{{#aptProxyUrl}}
|
||||
# Sauvegarde horodatée si le fichier existe déjà.
|
||||
[ -f "$CONF" ] && cp -a "$CONF" "${CONF}.bak.$(date +%Y%m%d%H%M%S)" && echo "BACKUP=1"
|
||||
printf 'Acquire::http::Proxy "%s";\nAcquire::https::Proxy "%s";\n' "{{aptProxyUrl}}" "{{aptProxyUrl}}" > "$CONF"
|
||||
CODE=$?
|
||||
echo "WROTE=$CONF"
|
||||
{{/aptProxyUrl}}
|
||||
{{^aptProxyUrl}}
|
||||
echo "NO_PROXY_URL"
|
||||
CODE=2
|
||||
{{/aptProxyUrl}}
|
||||
echo "===SU:PROXY_AFTER==="
|
||||
cat "$CONF" 2>/dev/null || echo "ABSENT"
|
||||
echo "===SU:EXIT=${CODE}==="
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
# Sonde lecture seule : OS, arch, virtualisation, Proxmox/RPi, GPU, réseau.
|
||||
# Aucune écriture. Le backend propose des corrections (jamais appliquées sans validation).
|
||||
export LC_ALL=C
|
||||
echo "===SU:PROBE_OS==="
|
||||
cat /etc/os-release 2>/dev/null
|
||||
echo "===SU:PROBE_ARCH==="
|
||||
uname -m
|
||||
dpkg --print-architecture 2>/dev/null
|
||||
echo "===SU:PROBE_VIRT==="
|
||||
systemd-detect-virt 2>/dev/null || echo "none"
|
||||
echo "===SU:PROBE_PROXMOX==="
|
||||
[ -d /etc/pve ] && echo "PROXMOX=1" || echo "PROXMOX=0"
|
||||
echo "===SU:PROBE_RPI==="
|
||||
grep -qi raspberry /proc/cpuinfo 2>/dev/null && echo "RPI=1" || echo "RPI=0"
|
||||
echo "===SU:PROBE_GPU==="
|
||||
command -v lspci >/dev/null 2>&1 && lspci 2>/dev/null | grep -Ei 'vga|3d|display' || echo "no-lspci"
|
||||
echo "===SU:PROBE_NET==="
|
||||
ip -o -4 addr show 2>/dev/null | awk '{print $2, $4}'
|
||||
echo "===SU:EXIT=0==="
|
||||
Reference in New Issue
Block a user