Files
nixos-workstations/MODULAR-PROVISIONING.md

68 lines
1.6 KiB
Markdown

# Provisionnement modulaire
## Organisation
```text
hosts/
bureautix-01.nix -> users/alice.nix
bureautix-02.nix -> users/bob.nix
bureautix-03.nix -> users/mike.nix
users/
alice.nix
bob.nix
mike.nix
```
Le moteur commun se trouve dans `modules/` et `workstation-setup/`. Il ne doit pas être modifié lorsqu'un nouvel utilisateur est ajouté.
## Ajouter un utilisateur
Créer une nouvelle fiche dans `users/`, par exemple `users/claire.nix`, avec un identifiant UNIX et un nom affiché.
## Ajouter un poste
Créer une fiche dans `hosts/`, par exemple `hosts/bureautix-04.nix`, qui importe `configuration.nix` et la fiche utilisateur souhaitée, puis définit `networking.hostName`.
Ajouter ensuite ce poste à `nixosConfigurations` dans `flake.nix`.
## Premier passage depuis v1.8.7
La première migration peut être validée sans Flake afin d'activer les fonctionnalités `nix-command` et `flakes` dans le système :
```bash
sudo nixos-rebuild build \
-I nixos-config=/home/localadm/nixos-workstations/hosts/bureautix-01.nix
```
Puis :
```bash
sudo nixos-rebuild switch \
-I nixos-config=/home/localadm/nixos-workstations/hosts/bureautix-01.nix
```
Pour `bureautix-01`, le comportement reste celui de la v1.8.7 et l'utilisateur reste Alice.
## Utilisation Flake
Créer une fois le verrou de dépendances :
```bash
nix flake lock
```
Puis construire un poste :
```bash
sudo nixos-rebuild build --impure --flake .#bureautix-02
```
Et l'appliquer :
```bash
sudo nixos-rebuild switch --impure --flake .#bureautix-02
```
`--impure` est nécessaire tant que `/etc/nixos/hardware-configuration.nix` reste local au poste et hors du dépôt.