nixos/README.md
2025-09-25 23:28:10 +02:00

42 lines
2 KiB
Markdown

# NixOS
Ce repo contient la configuration NixOS des différentes machines présentes dans
l'infrastructure de Aurore et ce décompose en plusieurs partie :
- [hosts](./hosts) : contient la configuration spécifique à chaque machine,
typiquement la configuration réseau,
- [profiles](./profiles) : contient la configuration des différents modules
utilisé,
- [disks](./disks) : contient la configuration [disko](https://github.com/nix-community/disko)
des machines.
## Installation d'une machine
Si la configuration est déjà écrite, il faut alors suivre les étapes
suivantes :
1. S'assurer que la machine a accès à internet et possède un serveur DNS,
1. Importer les fichiers de configurations,
1. Si nécéssaire, il faut de générer le fichier `hardware-configuration.nix`
à l'aide de la commande `nixos-generate-config --no-filesystems --root .`
puis de l'ajouter dans la configuration,
1. Vérifier que la configuration `disko` utilisée est compatible, la
commande `lsblk` devrait être suffisant pour cela,
1. Partitionner les disques : l'usage de `disko` simplifie cette étape. En
effet, il suffit d'exécuter la commande :
`nix run github:nix-community/disko --extra-experimental-features "nix-command flakes" -- --mode disko --flake <path>#<nom>`
`disko` s'occupe automatiquement du montage des partitions créer,
1. Créer le répertoire `/mnt/etc/nixos` et ajouter les fichiers de
configuration dans ce répertoire,
1. Installer NixOS : `nixos-install --flake <path>#<nom>`,
1. Si tout s'est bien passé, un mot de passe vous sera demandé pour le mot
de passe root. Entrer celui-ci puis `poweroff` ou `reboot`.
1. Penser à push la configuration ainsi écrite.
Remarque :
> S'il n'y a pas suffisamment de place mémoire sur le disque d'installation
> lors du partitionnement des disques avec disko, il est possible d'étendre le
> nix-store en utilisant la RAM à l'aide de la commande :
> `mount -o remount,size=3G,noatime /nix/.rw-store`
> Cependant, cela peut être risquer s'il n'y a pas suffisamment de RAM.