diff --git a/README.md b/README.md index 786cacf..da12b06 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,45 @@ # nixos-template-base -Version de nixos supportée : NixOs 16.09 +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 install sur machine distante +# Notes de mise-à-jour +## pour le passage de 16.09 à unstable -* https://nixos.org/wiki/How_to_install_NixOS_from_Linux#Installing_through_a_chroot -* https://github.com/NixOS/nixpkgs/issues/13305 +* mettre à jour tous les dépôts +* changer la branche de base vers `nixos-unstable` +* changer la declaration de la machine dans `configuration.nix` -# Notes pour l'upgrade de 16.03 vers 16.09 +~~~ +networking.hostName = ""; +~~~ + +devient + +~~~ +r6d.computers.is = 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``` @@ -41,3 +68,150 @@ Pour résoudre les soucis d'upgrade, il est conseillé : * 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 +* https://nixos.org/wiki/Install_NixOS_on_Linode + + +## 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 +~~~ +