Common NixOS
Le common Nixos est un projet qui nous permet d'avoir un ensemble de modules pour NixOS. Ses modules vont représenter une base de configuration qui peut s'apparenter à une distribution NixOS.
Architecture
L'architecture de ce projet est divisé en plusieurs parties : On va retrouver un dossier nixosModules qui va contenir les modules NixOS. Ses modules sont organisés par type de configuration :
common: Ce module contient les configurations communes à tous les systèmes.desktop: Ce module contient les configurations pour les systèmes de bureau.vm: Ce module contient les configurations pour les machines virtuelles.server: Ce module contient les configurations pour les serveurs.
Fonctionnalités liées
SSH
Pour la configuration SSH, nous avons décidé de mettre en place les bonnes pratiques, tout d'abord en désactivant l'authentification par mot de passe, puis en désactivant l'authentification par clavier interactif. Nous avons également décidé de désactiver le X11 forwarding. Et le DNS pour éviter les problèmes de résolution de nom.
Ensuite pour les algorithmes de négociation de clé, nous avons décidé d'utiliser les algorithmes recommandés.
Monitoring
Pour le monitoring, de chaque, nous installons par défaut l'agent node_exporter et un agent alloy pour les logs. Ces agents s'install sous forme d'options c'est donc à l'utissateurs de les activer ou non.
Voici à quoi ressemble l'option nixos
Et pour l'installation de l'agent node_exporter cela est défini dans le moudle server.
Et voici les options à rajouter dans les machines.
Serial
La fonction serial est utilisé pour configurer une machine virtuelle via sa sortie série. Cela est utilisé pour les machines déployées dans le cloud. Ce module permet d'activer la sortie série dans le grub et dans le kernel.
Neovim
Nous installons neovim par défaut sur nos machines. Et nous le configurons avec quelques options de base.
Localisation
Étant donné que les personnes amené à utiliser ces machines sont francophones, nous avons décidé de mettre en place la localisation française par défaut.
Paquets par défaut
Nous décidons d'installer quelques paquets par défaut sur nos machines.
Pour la partie commune à tous les systèmes, nous installons les paquets suivants :
htop
tmux
curl
wget
Pour la partie serveur, nous installons les paquets suivants :
git
netbird
dnsutils
Pour la partie bureau, nous installons les paquets suivants :
Firefox
Vscode
Remmina
Template
Les templates sont utilisé pour cloner une base de configuration nixos, pour avoir tous les éléments nécessaire pour installer une machine.
Le template va contenir les éléments suivants :
Un fichier
flake.nixqui va contenir la configuration de base du template.Un fichier
network.nixqui va contenir la configuration réseau du template.Un fichier
hardware-configuration.nixqui va contenir la configuration matérielle du template.Un fichier
misc.nixqui va contenir la configuration divers du template.Un fichier
disko.nixqui va contenir la configuration de disko du template.Un fichier
users.nixqui va contenir la configuration des utilisateurs du template.