From 213ba07cfeb28971f65a87a0bdfcbad5a9c747d4 Mon Sep 17 00:00:00 2001 From: Damien Date: Wed, 9 Sep 2026 10:03:58 +0200 Subject: [PATCH] fix: set -e dans install.sh, DNS DHCP standalone, loginShellInit --- installer/install.sh | 9 ++++++--- installer/installer-base.nix | 4 ++-- pxe-server/configuration.nix | 8 +++++++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/installer/install.sh b/installer/install.sh index a2350ff..44d51cf 100644 --- a/installer/install.sh +++ b/installer/install.sh @@ -1,7 +1,10 @@ # Pas de shebang ici : ce fichier est injecté comme corps de script par -# pkgs.writeShellScriptBin dans installer-base.nix (qui ajoute déjà -# `#!...` + `set -euo pipefail`). -# +# pkgs.writeShellScriptBin dans installer-base.nix (qui ajoute juste +# `#!...`, PAS de mode strict — d'où le `set` explicite ci-dessous : sans +# lui, une erreur (ex: DNS indisponible) n'arrête pas le script, qui +# continuait jusqu'au reboot final en masquant l'échec. +set -euo pipefail + # Installeur unique pour les deux repos : # - branche "flotte" -> nixos_fleet (public, jamais chiffré) # - branche "utilisateur nommé" -> nixos_users (privé, chiffrement au choix) diff --git a/installer/installer-base.nix b/installer/installer-base.nix index 5680aa9..e3975ca 100644 --- a/installer/installer-base.nix +++ b/installer/installer-base.nix @@ -40,8 +40,8 @@ in services.getty.autologinUser = lib.mkForce "root"; users.users.root.password = lib.mkForce ""; - environment.etc."profile.d/00-fleet-installer.sh".text = '' - if [ "$(tty)" = "/dev/tty1" ] && [ -z "$FLEET_INSTALLER_RAN" ]; then + programs.bash.loginShellInit = '' + if [ "$(tty)" = "/dev/tty1" ] && [ -z "''${FLEET_INSTALLER_RAN:-}" ]; then export FLEET_INSTALLER_RAN=1 ${installScript}/bin/fleet-install fi diff --git a/pxe-server/configuration.nix b/pxe-server/configuration.nix index cad86c6..f4e3436 100644 --- a/pxe-server/configuration.nix +++ b/pxe-server/configuration.nix @@ -81,7 +81,13 @@ in } // ( if standaloneDhcp then - { "dhcp-range" = [ "192.168.1.50,192.168.1.150,12h" ]; } # à adapter au réseau cible + { + "dhcp-range" = [ "192.168.1.50,192.168.1.150,12h" ]; # à adapter au réseau cible + # port = 0 désactive le DNS de dnsmasq : sans ça, les PC installés + # via DHCP de ce serveur n'ont aucun serveur DNS fonctionnel et ne + # peuvent résoudre ni GitHub ni Gitea pendant l'install. + "dhcp-option" = [ "option:dns-server,1.1.1.1,9.9.9.9" ]; + } else { "dhcp-range" = [ "192.168.1.0,proxy" ]; } # à adapter au sous-réseau existant );