From 4b988bbe460005da70819d00e6a1b0d946bb2dbf Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 19 Jul 2026 08:02:11 +0000 Subject: [PATCH] [FIX] script qemu: don't run apt at first boot by default cloud-init's package_update/package_upgrade forced apt to hit the distro mirrors on first boot; on a slow or unreachable network that stalls cloud-init and delays SSH availability. They are now off by default (SSH is already present in the cloud images and enabled via runcmd); --apt-update opts back in (and runs upgrade too unless --no-upgrade). Co-Authored-By: Claude Opus 4.8 (1M context) --- script/qemu/deploy_qemu.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/script/qemu/deploy_qemu.py b/script/qemu/deploy_qemu.py index e1e13e1..610cbe3 100755 --- a/script/qemu/deploy_qemu.py +++ b/script/qemu/deploy_qemu.py @@ -735,8 +735,14 @@ def build_cloud_config( f" layout: {args.keyboard_layout}", f" variant: {args.keyboard_variant}", ] - lines.append("package_update: true") - lines.append(f"package_upgrade: {'false' if args.no_upgrade else 'true'}") + # apt update/upgrade désactivés par défaut : sur un réseau lent/instable + # ils font pendre cloud-init au 1er boot (et retardent la dispo SSH). SSH + # est déjà présent dans les images cloud ; on l'active via runcmd sans apt. + # --apt-update réactive apt update (+ upgrade, sauf --no-upgrade). + do_update = args.apt_update + do_upgrade = args.apt_update and not args.no_upgrade + lines.append(f"package_update: {'true' if do_update else 'false'}") + lines.append(f"package_upgrade: {'true' if do_upgrade else 'false'}") # openssh-server : garantit un serveur SSH sur toutes les distros (les # images Debian genericcloud notamment ne l'ont pas toujours activé). @@ -1102,6 +1108,13 @@ def build_parser() -> argparse.ArgumentParser: action="store_true", help="N'exécute pas package_upgrade au premier boot.", ) + g_cloud.add_argument( + "--apt-update", + action="store_true", + help="Exécute « apt update » au 1er boot (package_update). Désactivé " + "par défaut : évite que cloud-init se bloque sur un miroir lent/" + "injoignable (SSH est déjà présent dans les images cloud).", + ) g_run = p.add_argument_group("Exécution") g_run.add_argument(