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>
71 lines
2.4 KiB
Nix
71 lines
2.4 KiB
Nix
{
|
|
description = "Nixos_Fleet : parc de PC génériques (PXE/USB, disko, jamais chiffré)";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
|
|
disko = {
|
|
url = "github:nix-community/disko";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
# Même branche release-26.05 que nixpkgs (confirmé : la branche existe
|
|
# bien sur nix-community/home-manager). Gère les réglages Cinnamon par
|
|
# utilisateur (dconf, fichiers dans $HOME) à la place des scripts
|
|
# d'activation système à la main qu'on avait avant.
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager/release-26.05";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
{ self, nixpkgs, disko, home-manager, ... }:
|
|
let
|
|
repoUrl = "git+https://gitea.miniclic.net/Damien/Nixos_Fleet.git";
|
|
in
|
|
{
|
|
nixosConfigurations = {
|
|
nixos = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [
|
|
disko.nixosModules.disko
|
|
home-manager.nixosModules.home-manager
|
|
./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"; }
|
|
];
|
|
};
|
|
|
|
installer-netboot = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [ ./installer/netboot.nix ];
|
|
};
|
|
|
|
installer-iso = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [ ./installer/iso.nix ];
|
|
};
|
|
|
|
pxe-server = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
modules = [ ./pxe-server/configuration.nix ];
|
|
};
|
|
};
|
|
};
|
|
}
|