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.
|
3 years ago | |
---|---|---|
applications | 3 years ago | |
configuration | 4 years ago | |
iso-image | 4 years ago | |
public | 5 years ago | |
services | 3 years ago | |
.gitignore | 9 years ago | |
Makefile | 4 years ago | |
README.md | 4 years ago | |
base.nix | 8 years ago | |
byobu-adminsys | 8 years ago | |
config-generator.nix | 4 years ago | |
lib.nix | 8 years ago | |
module-template.nix | 4 years ago | |
onchange | 8 years ago | |
options.nix | 4 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
- http://howoldis.herokuapp.com/ pour savoir de quand datent les différentes releases de NixOS
- https://repology.org/repository/nix_unstable/problems pour lister les paquets avec problèmes
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
puismake tag push
- mettre à jour les dépôts avec les dernières versions,
make submodules-update
- vérifier que
configuration.nix
contientservices.xserver.enable = true;
pour les machines avec interface graphique - vérifier que
configuration.nix
contient le nom de la machinenetworking.hostName = "<X>";
- vérifier que
configuration.nix
contient le nom de domainenetworking.domain = "<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