Configuration NixOS d'Aurore
Find a file
2025-09-27 23:29:31 +02:00
devshells ssh + fmt + doc + agenix 2025-09-27 23:29:31 +02:00
disks Initial commit 2025-09-25 23:28:10 +02:00
hosts/vm/jitsi Initial commit 2025-09-25 23:28:10 +02:00
profiles ssh + fmt + doc + agenix 2025-09-27 23:29:31 +02:00
secrets ssh + fmt + doc + agenix 2025-09-27 23:29:31 +02:00
flake.lock ssh + fmt + doc + agenix 2025-09-27 23:29:31 +02:00
flake.nix ssh + fmt + doc + agenix 2025-09-27 23:29:31 +02:00
README.md ssh + fmt + doc + agenix 2025-09-27 23:29:31 +02:00
secrets.nix ssh + fmt + doc + agenix 2025-09-27 23:29:31 +02:00

NixOS

Ce repo contient la configuration NixOS des différentes machines présentes dans l'infrastructure de Aurore et se décompose en plusieurs parties :

  • disks : contient la configuration disko des machines.
  • devshells : contient des shells nix pour faciliter l'édition des configurations nixos.
  • hosts : contient la configuration spécifique à chaque machine, typiquement la configuration réseau,
  • profiles : contient la configuration des différents modules utilisé,
  • secrets : contient l'ensemble des secrets chiffrés avec agenix.

Gestion des secrets

Dans NixOS, l'ensemble des fichiers est écrit dans /nix/store et qui est visible par tous les programmes (et tout les utilisateur⋅ices). De plus, l'ensemble des fichiers de configurations se trouvent sur un repo git publique. Pour ces deux raisons, il est préférable de chiffrer les secrets à l'aide de agenix. Pour plus de détaille dans secrets

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,
  2. Importer les fichiers de configurations,
  3. Si nécessaire, 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,
  4. Vérifier que la configuration disko utilisée est compatible, la commande lsblk devrait être suffisant pour cela,
  5. 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,
  6. Créer le répertoire /mnt/etc/nixos et ajouter les fichiers de configuration dans ce répertoire,
  7. Installer NixOS : nixos-install --flake <path>#<nom>,
  8. 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.
  9. 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.

Remarque :

Si l'installation nécéssite le déchiffrement de secrets, l'installation pourrait échouée. Veuillez alors suivre la procédure décrite dans secrets.

Formattage

La flake contient un formatter (treefmt) qui s'exécute automatiquement lors d'un nix flake check. Si le repo n'est pas formatter, une erreur sera alors retournée en suggérant des modifications. Pour appliquer les modifications suggérées, il est alors possible d"exécuter la commande :

$ nix fmt