Compare commits
14 Commits
2017-01-27
...
93254f45c0
| Author | SHA1 | Date | |
|---|---|---|---|
| 93254f45c0 | |||
| c1ce935adb | |||
| e68cbcd8b9 | |||
| ac39a52fd7 | |||
| 3dc8184bca | |||
| 24ef44b100 | |||
| 9e9ea00cd2 | |||
|
|
493249ebd3 | ||
| e0a468bfeb | |||
| c4013be348 | |||
| 6cdd621db2 | |||
| a5bfdbcd3d | |||
| 5b954581db | |||
| ca11b46674 |
184
README.md
184
README.md
@@ -1,18 +1,45 @@
|
|||||||
# nixos-template-base
|
# 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.
|
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).
|
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.
|
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
|
* mettre à jour tous les dépôts
|
||||||
* https://github.com/NixOS/nixpkgs/issues/13305
|
* 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 = "<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
|
* 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```
|
* 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
|
* d'ajouter `vim` aux paquets
|
||||||
* de réactiver petit à petit les lignes désactivées
|
* 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 <<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
|
||||||
|
~~~
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,11 @@ mkIf cfg.nix-serve-client {
|
|||||||
# Cache http pour le store
|
# Cache http pour le store
|
||||||
requireSignedBinaryCaches = false;
|
requireSignedBinaryCaches = false;
|
||||||
binaryCaches = [
|
binaryCaches = [
|
||||||
|
#(mkIf (computers.isRollo) "http://ocean.grudu.net:5001/")
|
||||||
|
(mkIf (computers.isRollo) "http://192.168.12.6:5000/")
|
||||||
|
#(mkIf (computers.isOcean) "http://rollo.grudu.net:5001/")
|
||||||
|
(mkIf (computers.isOcean) "http://192.168.12.5:5000/")
|
||||||
|
|
||||||
(mkIf (profiles.isDubronetwork && (! computers.isPedro) && (! computers.isRollo)) "http://nix-cache.dubronetwork.fr:5001")
|
(mkIf (profiles.isDubronetwork && (! computers.isPedro) && (! computers.isRollo)) "http://nix-cache.dubronetwork.fr:5001")
|
||||||
|
|
||||||
(mkIf profiles.isPrunetwork "https://cache.nixos.org/")
|
(mkIf profiles.isPrunetwork "https://cache.nixos.org/")
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -235,6 +235,8 @@ in
|
|||||||
r6d.config-generator = {
|
r6d.config-generator = {
|
||||||
docker = true;
|
docker = true;
|
||||||
radicale = true;
|
radicale = true;
|
||||||
|
nix-serve-client = true;
|
||||||
|
nix-serve-server = true;
|
||||||
tincAddress = "192.168.12.6/24";
|
tincAddress = "192.168.12.6/24";
|
||||||
tincExtraConfig = ''
|
tincExtraConfig = ''
|
||||||
ConnectTo = rollo_dubronetwork_fr
|
ConnectTo = rollo_dubronetwork_fr
|
||||||
@@ -365,6 +367,8 @@ in
|
|||||||
fail2ban = true;
|
fail2ban = true;
|
||||||
mailboxes = true;
|
mailboxes = true;
|
||||||
murmur = true;
|
murmur = true;
|
||||||
|
nix-serve-client = true;
|
||||||
|
nix-serve-server = true;
|
||||||
tincAddress = "192.168.12.5/24";
|
tincAddress = "192.168.12.5/24";
|
||||||
tincExtraConfig = ''
|
tincExtraConfig = ''
|
||||||
ConnectTo = ocean_prunetwork_fr
|
ConnectTo = ocean_prunetwork_fr
|
||||||
|
|||||||
Reference in New Issue
Block a user