You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nixos-template-base/README.md

4.3 KiB

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

Notes de mise-à-jour

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

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