Téléverser les fichiers vers "/"

This commit is contained in:
2026-08-18 17:31:50 +02:00
parent 37fe6d1f1f
commit e3977b329d
5 changed files with 156 additions and 5 deletions
+1 -1
View File
@@ -9,4 +9,4 @@ a separate written license from the copyright holder.
To obtain commercial permission, contact the copyright holder before use. To obtain commercial permission, contact the copyright holder before use.
Copyright © 2026 Olivier Bro. Copyright © 2026 Olivier.
+89
View File
@@ -0,0 +1,89 @@
# Déploiement du candidat production
## 1. Préparer les fichiers locaux propres au poste
Le matériel reste local :
```text
/etc/nixos/hardware-configuration.nix
```
Pour une nouvelle création du compte `alice`, aucun fichier de secret local n'est nécessaire dans ce lab.
Le mot de passe temporaire est déclaré dans `modules/users.nix` :
```text
LaboTest@1980
```
Avec `users.mutableUsers = true`, il sert à la création initiale du compte puis le mot de passe choisi par l'utilisateur est conservé.
> En vraie production, le dépôt étant privé, la stratégie de mot de passe initial pourra être adaptée sans modifier le fonctionnement de l'assistant.
## 2. Remplacer l'ancien assistant
La version production utilise :
```text
modules/workstation-setup.nix
workstation-setup/
```
L'ancien `modules/yubikey-first-login.nix` et l'ancien frontend d'aperçu `modules/first-login-ui.nix` / `first-login-ui/` ne doivent plus être importés. `modules/security.nix` reste utilisé.
## 3. Construire sans activer
```bash
cd ~/nixos-workstations
sudo nixos-rebuild build \
-I nixos-config=/home/localadm/nixos-workstations/configuration.nix
```
## 4. Examiner l'activation
```bash
sudo nixos-rebuild dry-activate \
-I nixos-config=/home/localadm/nixos-workstations/configuration.nix
```
## 5. Activer temporairement
```bash
sudo nixos-rebuild test \
-I nixos-config=/home/localadm/nixos-workstations/configuration.nix
```
Avant de continuer, vérifier immédiatement que `localadm` fonctionne toujours.
## 6. Valider le parcours utilisateur
Ouvrir une session `alice` avec la YubiKey et le PIN temporaire, puis :
1. saisir le mot de passe temporaire ;
2. choisir et confirmer le mot de passe personnel ;
3. vérifier que l'étape ne passe à YubiKey qu'après succès réel de `passwd` ;
4. saisir le PIN temporaire de la YubiKey ;
5. choisir et confirmer le nouveau PIN ;
6. vérifier qu'un mauvais PIN ne déclenche aucune nouvelle tentative automatique ;
7. terminer l'assistant ;
8. se déconnecter/reconnecter et vérifier que l'assistant ne revient plus ;
9. vérifier l'authentification YubiKey + nouveau PIN ;
10. vérifier le mot de passe local comme mécanisme de secours.
Marqueurs attendus :
```text
~/.local/state/nixos-workstations/password-initialized
~/.local/state/nixos-workstations/yubikey-pin-initialized
```
## 7. Passer réellement en production
Uniquement après la validation complète :
```bash
sudo nixos-rebuild switch \
-I nixos-config=/home/localadm/nixos-workstations/configuration.nix
```
+1 -1
View File
@@ -6,7 +6,7 @@ This software is licensed under the PolyForm Noncommercial License 1.0.0.
Official license terms: Official license terms:
https://polyformproject.org/licenses/noncommercial/1.0.0/ https://polyformproject.org/licenses/noncommercial/1.0.0/
Required Notice: Copyright © 2026 Olivier Bro. Required Notice: Copyright © 2026 Olivier.
Commercial use is not granted by this repository license. Commercial use is not granted by this repository license.
Any commercial exploitation requires a separate prior written license from the copyright holder. Any commercial exploitation requires a separate prior written license from the copyright holder.
+59
View File
@@ -0,0 +1,59 @@
# Migration vers le setup de production
Cette version remplace les deux prototypes précédents par une seule brique :
```text
modules/workstation-setup.nix
workstation-setup/
```
`modules/security.nix` reste conservé.
## Depuis la racine du dépôt
Après avoir copié les nouveaux fichiers dans `~/nixos-workstations`, supprimer les anciennes briques si elles sont encore suivies par Git :
```bash
cd ~/nixos-workstations
git rm -f modules/yubikey-first-login.nix 2>/dev/null || true
git rm -f modules/first-login-ui.nix 2>/dev/null || true
git rm -rf first-login-ui 2>/dev/null || true
git rm -f hardware-configuration.nix 2>/dev/null || true
```
Le `configuration.nix` de cette version importe uniquement :
```nix
imports = [
/etc/nixos/hardware-configuration.nix
./modules/software.nix
./modules/users.nix
./modules/security.nix
./modules/workstation-setup.nix
];
```
## Vérifier le diff avant tout build
```bash
git status --short
git diff -- configuration.nix modules/users.nix modules/security.nix modules/workstation-setup.nix
```
Le fichier `/etc/nixos/hardware-configuration.nix` n'est jamais remplacé par le dépôt.
## Important pour un nouveau poste
Aucun fichier `/etc/nixos/secrets/...` n'est requis dans cette version lab.
`alice` reçoit son mot de passe temporaire à la création via `initialHashedPassword` dans `modules/users.nix` :
```text
LaboTest@1980
```
Avec `users.mutableUsers = true`, le mot de passe personnalisé ensuite par l'utilisateur est conservé.
Ensuite suivre `PRODUCTION-CHECKLIST.md`.
+6 -3
View File
@@ -6,10 +6,14 @@
./modules/software.nix ./modules/software.nix
./modules/users.nix ./modules/users.nix
./modules/security.nix ./modules/security.nix
./modules/yubikey-first-login.nix ./modules/workstation-setup.nix
./modules/first-login-ui.nix
]; ];
nixosWorkstations.workstationSetup = {
enable = true;
user = "alice";
};
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
@@ -34,7 +38,6 @@
}; };
services.xserver.enable = true; services.xserver.enable = true;
services.displayManager.sddm.enable = true; services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true; services.desktopManager.plasma6.enable = true;