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.5 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.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 = "<bidule>";

devient

r6d.computers.is<bidule> = 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

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 <<EOF > /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 "<nixos>"
  • 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