Installation d'une VM NixOS

NixOS est une distribution Linux basée sur le gestionnaire de paquet Nix. Elle utilise une configuration déclarative et permet des mises à jour fiables du système. NixOS a commencé comme un projet de recherche par Eelco Dolstra en 2003. La fondation NixOS a été fondée en 2015 et vise à soutenir des projets comme NixOS qui mettent en œuvre le modèle de déploiement purement fonctionnel.

NixOS dispose d'outils dédiés aux Devops et aux tâches de déploiement. NixOS suit une cadence de publication de deux versions par an. Ces versions sont habituellement publiées autour de mai et novembre. Chaque numéro de versions a le format « YY.MM ». Par exemple, la version 24.11 de NixOS correspond à la version publiée en novembre 2024.

Logo de NixOS Logo de NixOS

Dans NixOS, l'ensemble du système d'exploitation — le noyau, les applications, les composants système, les fichiers de configuration, etc. — est construit par le gestionnaire de paquets Nix à partir d'une description dans un langage de construction fonctionnel. La création d'une nouvelle configuration ne peut pas remplacer les configurations précédentes.

Dans Nix, il n’y a pas de répertoire /bin, de /sbin, de /lib ou de /usr. Tout est gardé dans un /nix/store. Dans le /nix/store on va retrouver nos hiérarchies habituelles, rangées dans des « dérivations ».

Téléchargement

Rendez-vous sur la page de téléchargement du site web pour télécharger le dernier ISO d'installation de NixOS en version Gnome. L'ISO est disponible en version ARM ou AMD64.

Création d'une nouvelle machine (Virtualbox)

Bouton Nouvelle VM

Configuration

Exercices

Cette fois, c'est à vous de jouer 😬.

Une fois la phase d'installation effectué, essayer d'atteindre chacun des objectifs ci-dessous en ne modifiant que le fichier /etc/nixos/configuration.nix.

  1. Trois comptes pierre, paul et jacques son créé et membre du group users.
  2. Pipewire s'occupe du son et il supporte les applications utilisant le daemon Jack.
  3. Flatpak est disponible avec le dépôt Flathub activé.
  4. Les applications suivante s'installe via flatpak/flathub :
    • com.mattjakeman.ExtensionManager
    • com.brave.Browser
  5. Les applications suivante sont installés :
    • amberol
    • vim
    • wget
    • mtr
    • dstat
    • htop
    • gnome-tweaks
    • kdePackages.breeze
    • ssh
  6. Les extensions Gnome suivante sont installés et activé pour chaque utilisateur :
    • appindicator
    • dash-to-dock
    • burn-my-windows
    • tiling-shell
  7. L'extension burn-my-windows est configuré avec :
    • 3 animations d'ouverture de fenêtre
    • 2 animations de fermeture de fenêtre
  8. Le curseur de la souris utilise le thème Breeze_Light
  9. L'horloge dans la barre supérieur de Gnome affiche les secondes
  10. Le serveur SSH est activé
  11. Seul les ports 22, 80 et 443 sont ouverts en utilisant nftables
  12. Le système dispose d'une swap en mémoire vive (zRam)

Le simple copier/coller de votre fichier configuration.nix dans un nouveau système doit permettre de retrouver le même état de la machine avec l'ensemble des objectifs atteints.

Envoyé votre fichier configuration.nix à infres@welibre.org avant le début du prochain cours. La date et l'heure d'envoi auront une influence sur la note (plus tôt = plus de points).