Téléverser les fichiers vers "modules"

This commit is contained in:
2026-08-20 08:52:59 +02:00
parent 2f2aad80db
commit e99d7ddf6a
2 changed files with 65 additions and 9 deletions
+60
View File
@@ -0,0 +1,60 @@
{ config, lib, ... }:
let
cfg = config.nixosWorkstations.provisioning;
in
{
options.nixosWorkstations.provisioning = {
enable = lib.mkEnableOption "provisionnement modulaire de l'utilisateur principal du poste";
user = lib.mkOption {
type = lib.types.str;
description = "Identifiant du compte utilisateur à préparer sur ce poste.";
};
realName = lib.mkOption {
type = lib.types.str;
description = "Nom affiché de l'utilisateur à préparer sur ce poste.";
};
initialPassword = lib.mkOption {
type = lib.types.str;
default = "LaboTest@1980";
description = "Mot de passe temporaire de première connexion utilisé en LAB.";
};
diskSize = lib.mkOption {
type = lib.types.str;
default = "10G";
description = "Taille initiale de l'espace personnel chiffré.";
};
};
config = lib.mkIf cfg.enable {
assertions = [
{
assertion = builtins.match "^[a-z_][a-z0-9_-]*$" cfg.user != null;
message = "nixosWorkstations.provisioning.user doit être un identifiant UNIX simple en minuscules.";
}
{
assertion = cfg.realName != "";
message = "nixosWorkstations.provisioning.realName ne peut pas être vide.";
}
];
# Une seule source de vérité : la fiche utilisateur alimente à la fois
# la création du compte chiffré et l'assistant de première connexion.
nixosWorkstations.homedUser = {
enable = true;
user = cfg.user;
realName = cfg.realName;
initialPassword = cfg.initialPassword;
diskSize = cfg.diskSize;
};
nixosWorkstations.workstationSetup = {
enable = true;
user = cfg.user;
};
};
}