Téléverser les fichiers vers "/"
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
```
|
||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user