Externalise le module disque (comme nixos_users) + ajoute nixos-existing

hosts/nixos/configuration.nix importait diskos/plain.nix en dur --
deplace vers flake.nix (injection externe), meme pattern que
nixos_users/flake.nix (mkHost). Necessaire pour ajouter
nixos-existing : meme profil logiciel que "nixos", mais avec le
hardware-configuration.nix reel de la machine a la place de
diskos/plain.nix -- pour appliquer cette config sur un NixOS deja
installe, sans toucher au partitionnement existant (meme principe
que pxe-server, --impure requis).

Deplace aussi system.autoUpgrade.flake hors de hosts/common/default.nix
(etait fixe sur #nixos pour tous les profils) vers une injection par
attribut dans flake.nix : sans ca, une machine nixos-existing aurait
bascule sur l'attribut "nixos" (disko) a son prochain auto-upgrade,
avec un layout disque potentiellement incompatible avec l'existant.

Verifie : nix flake check --no-build passe pour "nixos" ; "nixos-existing"
echoue nur pour la meme raison attendue que pxe-server
(hardware-configuration.nix absent hors du vrai serveur/poste), pas
une regression. Dry-run build de "nixos" toujours complet.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-12 15:53:32 +02:00
co-authored by Claude Sonnet 5
parent 3be4747eb8
commit 8cca5d3ebb
3 changed files with 31 additions and 2 deletions
+21
View File
@@ -19,6 +19,9 @@
outputs = outputs =
{ self, nixpkgs, disko, home-manager, ... }: { self, nixpkgs, disko, home-manager, ... }:
let
repoUrl = "git+https://gitea.miniclic.net/Damien/Nixos_Fleet.git";
in
{ {
nixosConfigurations = { nixosConfigurations = {
nixos = nixpkgs.lib.nixosSystem { nixos = nixpkgs.lib.nixosSystem {
@@ -27,6 +30,24 @@
disko.nixosModules.disko disko.nixosModules.disko
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
./hosts/nixos/configuration.nix ./hosts/nixos/configuration.nix
./diskos/plain.nix
{ system.autoUpgrade.flake = "${repoUrl}#nixos"; }
];
};
# Même profil logiciel que "nixos", mais sans disko : pour une
# machine où NixOS est déjà installé (partitionnement existant,
# quel qu'il soit, à ne pas toucher) -- utilise le
# hardware-configuration.nix réel de cette machine à la place de
# diskos/plain.nix, comme pxe-server. --impure obligatoire au
# nixos-rebuild (lit un chemin hors du flake).
nixos-existing = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
home-manager.nixosModules.home-manager
./hosts/nixos/configuration.nix
/etc/nixos/hardware-configuration.nix
{ system.autoUpgrade.flake = "${repoUrl}#nixos-existing"; }
]; ];
}; };
+6 -1
View File
@@ -168,11 +168,16 @@ in
# (déjà la valeur par défaut de ce module -- explicité ici) : si la # (déjà la valeur par défaut de ce module -- explicité ici) : si la
# machine est éteinte au moment prévu, la maj se lance dès le # machine est éteinte au moment prévu, la maj se lance dès le
# prochain démarrage plutôt que d'attendre la semaine suivante. # prochain démarrage plutôt que d'attendre la semaine suivante.
# `flake` n'est PAS fixé ici : il dépend de l'attribut réellement
# utilisé pour cette machine (nixos vs nixos-existing, disko ou pas)
# -- injecté par flake.nix, comme dans nixos_users. Le fixer ici
# ferait basculer une machine "nixos-existing" vers l'attribut
# "nixos" (disko) à son prochain auto-upgrade, avec un layout disque
# potentiellement incompatible avec l'existant.
system.autoUpgrade = { system.autoUpgrade = {
enable = true; enable = true;
persistent = true; persistent = true;
dates = "weekly"; dates = "weekly";
flake = "git+https://gitea.miniclic.net/Damien/Nixos_Fleet.git#nixos";
}; };
# Compte admin de la flotte : root, mot de passe "nixos" STABLE (pas # Compte admin de la flotte : root, mot de passe "nixos" STABLE (pas
+4 -1
View File
@@ -1,10 +1,13 @@
# Profil générique "nixos" : poste non-nominatif de la flotte. # Profil générique "nixos" : poste non-nominatif de la flotte.
# Le module disque (diskos/plain.nix pour une install neuve, ou le
# hardware-configuration.nix réel d'une machine déjà installée) est
# injecté par flake.nix, pas ici -- ce fichier ne connaît pas le
# layout disque, comme dans nixos_users.
{ ... }: { ... }:
{ {
imports = [ imports = [
../common ../common
../../diskos/plain.nix
]; ];
# Compte de session non-nominatif, mot de passe "nixos" stable, sans # Compte de session non-nominatif, mot de passe "nixos" stable, sans