first commit
This commit is contained in:
71
README.md
Normal file
71
README.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# NixOS dotfiles
|
||||
|
||||
## Structure des fichiers
|
||||
|
||||
+ hosts
|
||||
| |
|
||||
| + generic <- Iso minimal pour nixos-anywhere
|
||||
| |
|
||||
| + myhost <- Tout ce qui est unique à une machine vient ici
|
||||
|
|
||||
+ modules
|
||||
| |
|
||||
| + core <- Modules partagés entre toutes les machines
|
||||
| |
|
||||
| + optionnal <- Modules pour au moins deux machines
|
||||
|
|
||||
+ flake.nix
|
||||
|
|
||||
+ custom.iso
|
||||
|
||||
Si un seul fichier nix, pas de sous dossier (openfortivpn)
|
||||
Si plusieurs fihchiers nix, un sous dossier (ex desktop)
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Création d'une iso (push en ligne pour kexec)
|
||||
2. Copie de l'iso sur le repo
|
||||
3. nixos-anywhere (pour déployer une install minimale)
|
||||
4. copie du disk-config.nix et du hardware-config.nix dans le dossier host qui va bien
|
||||
5. deploy-rs pour push une config sur une image generic ou maj existant.
|
||||
|
||||
## Création d'une iso
|
||||
|
||||
```
|
||||
nixos-generate --format iso --configuration ./customiso.nix -o ~/Downloads/nixos.iso
|
||||
```
|
||||
|
||||
si on veut utiliser kexec, il faut pousser l'iso en ligne pour que le serveur cible puisse la télécharger.
|
||||
|
||||
## Nixos anywhere
|
||||
|
||||
On ajoute à `~/.ssh/config`
|
||||
|
||||
```
|
||||
nixos-anywhere --flake .#generic --target-host root@192.168.122.204 -i ~/.ssh/id_ed25519_beastie --generate-hardware-config nixos-generate-config ./hosts/generic/hardware-configuration.nix
|
||||
```
|
||||
|
||||
si l'installation est en local, on peux créer le partitionnement avec la commande suivante :
|
||||
```
|
||||
sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --yes-wipe-all-disks --mode destroy,format,mount ./disko.nix
|
||||
```
|
||||
et faire une installation standard.
|
||||
Le mieux est de download le repo et de faire un nixos-anywhere en ssh sur localhost ou depuis un autre pc
|
||||
|
||||
Une fois la manipulation finie, on copie `hosts/generic` dans `hosts/hostname`. Ainsi, on garde le bon `disk-config.nix` et `hardware-configuration.nix`
|
||||
|
||||
## déployer la bonne configuration
|
||||
|
||||
Avant de déployer la configuration, il faut ajouter la clé sops-nix
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
On édite `hosts/hostname/default.nix` et on inclus les bons modules.
|
||||
|
||||
On lance le rebuild :
|
||||
|
||||
```
|
||||
nixos-rebuild switch --flake ~/dev#test-kvm --target-host beastie@192.168.122.204 --sudo
|
||||
```
|
||||
Reference in New Issue
Block a user