NixOS configuration template : base tools, localisation
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.
 
 
 
 
 
 
Go to file
Jean-Pierre PRUNARET 8dd973ede1 inutile 8 years ago
public la clef du serveur hydra a changée 8 years ago
.gitignore commit initial 9 years ago
Makefile ajout de time devant les commandes nix potentiellement longues 8 years ago
README.md backport from master 8 years ago
base.nix déplacement de la config desktop vers les endroits quivontbien(c) dans public 8 years ago
byobu-adminsys htop s'ouvre dans byobu 8 years ago
config-generator.nix activation nix-serve pour les serveurs online 8 years ago
module-template.nix MaJ template 9 years ago

README.md

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.

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;
  • mettre à jour le channel
nix-channel --add  https://nixos.org/channels/nixos-unstable nixos
nix-channel --update
  • faire la mise à jour
make

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