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 697f44f3bc extraction des redéfinition des packages
-> ce n'est pas un fix très joli mais il a le mérite de réappliquer les
config que nous avions été obligés de mettre en commentaires lors du
dernier upgrade
8 years ago
applications extraction des redéfinition des packages 8 years ago
configuration commentaire 8 years ago
iso-image gparted: coquille, était "parted" 8 years ago
public awesome: ajout clementine sur maj + F6 8 years ago
services notes pulseaudio 8 years ago
.gitignore commit initial 9 years ago
Makefile amélioration purge des logs 8 years ago
README.md Mettre à jour 'README.md' 8 years ago
base.nix extraction des redéfinition des packages 8 years ago
byobu-adminsys le script byobu va chercher la liste des sous modules 8 years ago
config-generator.nix migration config rollo sur annuaire 8 years ago
lib.nix add development packages to workstation profile 8 years ago
module-template.nix regroupement des options éparses en configurationOptions et renommage 8 years ago
onchange script qui relance une commande des changement du système de fichier 8 years ago
options.nix radio : extraction d'une option pour activer le profil 8 years ago

README.md

nixos-template-base

Versions de NixOS supportées :

  • 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.

Liens

Notes de mise-à-jour

pour l'utilisation de l'annuaire (à partir de 2017-04-28)

  • faire les mises à jour de l'OS
  • commiter & pusher l'état des dépôts (au cas où). Pour les différents dépôts git a, git commit puis make tag push
  • mettre à jour les dépôts avec les dernières versions, make submodules-update
  • vérifier que configuration.nix contient services.xserver.enable = true; pour les machines avec interface graphique
  • vérifier que configuration.nix contient le nom de la machine networking.hostName = "<X>";
  • tester la configuration : nixos-rebuild build
  • corriger et ajouter les éléments manquant (notamment dans private/annuaire.nix )
  • lorsque tout semble bon, vérifier :
    • qu'il y a toujours des utilisateurs dans la configuration
    • que le moyen d'accéder à la machine n'a pas été supprimé (surtout les machines distantes)
  • lancer la commande de build de l'os : make :)

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 /mnt/etc/nixos
mkdir /etc/nixos
mkdir /mnt/nix
mkdir /nix
mount --bind /mnt/nix/ /nix
mkdir /mnt/tmp
mount --bind /mnt/tmp /tmp
  • 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 /tmp
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 https://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