# nixos-template-base Versions de NixOS supportées : * NixOS 16.09 * NixOS unstable Ce dépôt stocke une configuration générique des machines. Une recette dite "config-generator" adapte la configuration selon le nom de la machine (FQDN). Actuellement, les scripts contiennent un peu de configuration spécifique pour les machines des mainteneurs. # Lien pour installer une machine distante * https://nixos.org/wiki/How_to_install_NixOS_from_Linux#Installing_through_a_chroot * https://github.com/NixOS/nixpkgs/issues/13305 # Notes de mise-à-jour ## pour le passage de 16.09 à unstable * mettre à jour tous les dépôts * changer la branche de base vers `nixos-unstable` * changer la declaration de la machine dans `configuration.nix` ~~~ networking.hostName = ""; ~~~ devient ~~~ r6d.computers.is = true; ~~~ ## pour le passage de 16.03 à 16.09 * mettre le dépôt base sur la branche upgrade-16.09 * changer le channel nixos : ```nix-channel --add https://nixos.org/channels/nixos-16.09 nixos``` * activer x11 dans le configuration.nix ~~~ services.xserver.enable = true; ~~~ * remplacer le bootloader si gummiboot était utilisé ~~~ boot.loader.gummiboot.enable = true; ~~~ devient ~~~ boot.loader.systemd-boot.enable = true; ~~~ Pour résoudre les soucis d'upgrade, il est conseillé : * de désactiver tous les imports (sauf `hardware.nix`) * d'ajouter `.../localisation.nix` dans les imports sous peine d'être en clavier US * d'ajouter ```nixpkgs.config.allowUnfree = true;``` * d'ajouter `vim` aux paquets * de réactiver petit à petit les lignes désactivées # Installation sur machine chez online.net * https://nixos.org/wiki/Install_NixOS_on_Online.Net ## Installation selon config online * commander serveur * lancer la procédure d'installation avec ubuntu LTS 64bits * partitionner le disque avec l'interface web * lancer l'installation de l'os. * attendre que la procédure standard d'installation d'online ait terminée * lorsque l'install est finie, dans l'onglet "Etat" se trouve l'option "Secours" ## Transformation en NixOS * relancer la machine en mode "Secours" * choisir un linux 64bits (préférence pour ubuntu LTS) * le système de boot donne des identifiants SSH pour le connecter à la machine * se connecter à la machine * passer en root : sudo su - * formater les partitions ~~~ mkfs.ext4 -L nixos /dev/sda1 swapoff -a mkswap /dev/sda2 swapon -a ~~~ * monter les partitions dans /mnt ~~~ mount /dev/sda1 /mnt/ mkdir /mnt/etc/ mkdir /etc/nixos mkdir /mnt/nix mount --bind /mnt/nix/ /nix ~~~ * installer les paquets nécessaires ~~~ apt-get install bzip2 git byobu htop glances ~~~ * création d'utilisateur (n'importe quil mot de passe) ~~~ adduser nix groupadd -r nixbld for n in $(seq 1 10); do useradd -c "Nix build user $n" -d /var/empty -g nixbld -G nixbld -M -N -r -s "$(which nologin)" nixbld$n; done ~~~ * mise-à-jour des certificats ~~~ update-ca-certificates ~~~ * installer nix ~~~ chown -R nix /nix su - nix bash <(curl https://nixos.org/nix/install) exit ~~~ * créer un profil nix pour root & un channel ~~~ . ~nix/.nix-profile/etc/profile.d/nix.sh nix-channel --remove nixpkgs nix-channel --add http://nixos.org/channels/nixos-unstable nixos nix-channel --update ~~~ * installer un editeur de texte ~~~ nix-env -i vim_configurable ~~~ * installation de nixos-install ~~~ cat < /root/configuration.nix { fileSystems."/" = {}; boot.loader.grub.enable = false; } EOF export NIX_PATH=nixpkgs=/root/.nix-defexpr/channels/nixos:nixos=/root/.nix-defexpr/channels/nixos/nixos export NIXOS_CONFIG=/root/configuration.nix nix-env -i -A config.system.build.nixos-install \ -A config.system.build.nixos-option \ -A config.system.build.nixos-generate-config \ -f "" ~~~ * configuration de NixOS si la machine existe déjà, cloner le dépôt dans /mnt/etc/nixos pour cela, créer clef ssh et l'ajouter sur la forge ~~~ ssh-keygen -t ed25519 cp ~/.ssh/id_ed25519* /mnt/etc/nixos/ git clone <> git submodule init git submodule update ~~~ * monter /etc/nixos vers /mnt/etc/nixos pour que la config clonée fonctionne ~~~ mount --bind /mnt/etc/nixos/ /etc/nixos/ ~~~ * mettre à jour la configuration matérielle ~~~ export NIX_PATH=nixpkgs=/root/.nix-defexpr/channels/nixos:nixos=/root/.nix-defexpr/channels/nixos/nixos nixos-generate-config --root /mnt ~~~ * vérifier le /mnt/etc/nixos/configuration.nix notamment le périphérique utilisé par grub * installer le système sur le disque ~~~ unset NIXOS_CONFIG nixos-install ~~~