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:
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
# Docker Engine depuis le dépôt officiel Debian (docs.docker.com/engine/install/debian).
|
||||
export LC_ALL=C
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
echo "===SU:CUSTOM_DOCKER==="
|
||||
apt-get update -qq 2>&1
|
||||
apt-get install -y ca-certificates curl 2>&1
|
||||
install -m 0755 -d /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc 2>&1
|
||||
chmod a+r /etc/apt/keyrings/docker.asc
|
||||
. /etc/os-release
|
||||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian ${VERSION_CODENAME} stable" > /etc/apt/sources.list.d/docker.list && echo "FILE_MODIFIED=/etc/apt/sources.list.d/docker.list"
|
||||
apt-get update -qq 2>&1
|
||||
if apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 2>&1; then
|
||||
for p in docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; do echo "PKG_INSTALLED=$p"; done
|
||||
echo "SERVICE_ENABLED=docker"
|
||||
CODE=0
|
||||
else
|
||||
echo "ERR=docker_install_failed"
|
||||
CODE=1
|
||||
fi
|
||||
usermod -aG docker "{{dockerUser}}" 2>&1 && echo "GROUP_ADDED=docker:{{dockerUser}}" || echo "ERR=docker_group_failed"
|
||||
mkdir -p "{{composeRoot}}" 2>&1 && echo "FILE_MODIFIED={{composeRoot}}"
|
||||
echo "DOCKER_GROUP_RELOGIN_REQUIRED=1"
|
||||
{{#rebootAfterInstall}}echo "REBOOT_REQUESTED=1"{{/rebootAfterInstall}}
|
||||
echo "===SU:EXIT=${CODE}==="
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
# Installe un groupe de paquets. {{packages}} = liste shell-safe fournie par le backend.
|
||||
export LC_ALL=C
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
echo "===SU:CUSTOM_PKGGROUPS==="
|
||||
apt-get update -qq 2>&1
|
||||
if apt-get install -y {{packages}} 2>&1; then
|
||||
for p in {{packages}}; do echo "PKG_INSTALLED=$p"; done
|
||||
CODE=0
|
||||
else
|
||||
echo "ERR=package_install_failed"
|
||||
CODE=1
|
||||
fi
|
||||
echo "===SU:EXIT=${CODE}==="
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
# Partage réseau : installe les paquets cochés (Samba/NFS/mDNS). Config détaillée = tâche 4.
|
||||
export LC_ALL=C
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
echo "===SU:CUSTOM_SHARING==="
|
||||
PKGS=""
|
||||
{{#installSamba}}PKGS="$PKGS samba"{{/installSamba}}
|
||||
{{#installNfs}}PKGS="$PKGS nfs-kernel-server"{{/installNfs}}
|
||||
{{#installMdns}}PKGS="$PKGS avahi-daemon libnss-mdns"{{/installMdns}}
|
||||
if [ -z "$PKGS" ]; then
|
||||
echo "ERR=no_sharing_selected"
|
||||
echo "===SU:EXIT=2==="
|
||||
exit 2
|
||||
fi
|
||||
apt-get update -qq 2>&1
|
||||
if apt-get install -y $PKGS 2>&1; then
|
||||
for p in $PKGS; do echo "PKG_INSTALLED=$p"; done
|
||||
{{#installSamba}}echo "SERVICE_ENABLED=smbd"{{/installSamba}}
|
||||
{{#installNfs}}echo "SERVICE_ENABLED=nfs-kernel-server"{{/installNfs}}
|
||||
{{#installMdns}}echo "SERVICE_ENABLED=avahi-daemon"{{/installMdns}}
|
||||
CODE=0
|
||||
else
|
||||
echo "ERR=sharing_install_failed"
|
||||
CODE=1
|
||||
fi
|
||||
echo "===SU:EXIT=${CODE}==="
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
# Agent invité VM : {{guestAgent}} = qemu-guest-agent ou open-vm-tools.
|
||||
export LC_ALL=C
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
echo "===SU:CUSTOM_VMTOOLS==="
|
||||
apt-get update -qq 2>&1
|
||||
if apt-get install -y {{guestAgent}} 2>&1; then
|
||||
echo "PKG_INSTALLED={{guestAgent}}"
|
||||
echo "SERVICE_ENABLED={{guestAgent}}"
|
||||
CODE=0
|
||||
else
|
||||
echo "ERR=vmtools_install_failed"
|
||||
CODE=1
|
||||
fi
|
||||
echo "===SU:EXIT=${CODE}==="
|
||||
Reference in New Issue
Block a user