Présentation NixOS
par ,
Campus Triolet - Université de Montpellier
Nous vous proposons d'introduire NixOS qui est une distribution Linux moderne (parue en 2006) basée sur le gestionnaire de paquet Nix et qui présente deux caractéristiques originales.
La première étant son aspect déclaratif: l'utilisateur décrit la configuration attendue dans un formalisme unifié (un langage de programmation dérivé du JSON), et le gestionnaire de paquet génèrera l'intégralité des scripts, services et autres artefacts nécessaires à la manière d'un compilateur.
Cet aspect permet à Nix vérifier que la compilation est cohérente avant d'effectuer la moindre modification, limitant ainsi beaucoup d'erreurs humaines.
Son second aspect est la reproductibilité: son puissant système de dépendances permet d'augmenter significativement les garanties qu'une configuration s'exécute indépendamment de la machine ou du moment de son déploiement.
De cette fonctionnalité découlent plusieurs caractéristiques intéressantes telles que la possibilité d'installer plusieurs versions du même paquet (et donc de s'affranchir des dependencies-hell) ou encore la possibilité de rollback, extrêmement utiles lors de l'administration de systèmes critiques (notamment lors de mises à jour).
Mais Nix va au delà : étant programmable, il est possible d'augmenter son compilateur en créant son propre langage de programmation adapté à la configuration de certaines tâches.
Ainsi, nous conclurons cette présentation en évoquant un outil développé au sein du laboratoire permettant d'utiliser Nix sur Terraform nous permettant de déployer et de configurer automatiquement l'infrastructure de notre laboratoire.