Compare commits
7 Commits
2017-03-01
...
2017-03-02
| Author | SHA1 | Date | |
|---|---|---|---|
| e74a1825d9 | |||
|
|
b47c6807d1 | ||
|
|
a4728792b2 | ||
|
|
4c4c2fed3e | ||
| 464da39592 | |||
| 963c818875 | |||
|
|
2f99508331 |
184
README.md
184
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 = "<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```
|
||||
@@ -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 <<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
|
||||
~~~
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ let
|
||||
in
|
||||
|
||||
{
|
||||
# TODO: ménage
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
@@ -225,6 +226,8 @@ in
|
||||
r6d.config-generator = {
|
||||
docker = true;
|
||||
radicale = true;
|
||||
nix-serve-client = true;
|
||||
nix-serve-server = true;
|
||||
tincAddress = "192.168.12.6/24";
|
||||
tincExtraConfig = ''
|
||||
ConnectTo = rollo_dubronetwork_fr
|
||||
@@ -258,6 +261,7 @@ in
|
||||
})
|
||||
|
||||
(mkIf comp.isLatitude {
|
||||
networking.hostName = "latitude.dubronetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
isDubronetwork = true;
|
||||
isHome = true;
|
||||
@@ -277,6 +281,7 @@ in
|
||||
};
|
||||
})
|
||||
(mkIf comp.isMonstre {
|
||||
networking.hostName = "monstre.dubronetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
isDubronetwork = true;
|
||||
isServer = true;
|
||||
@@ -296,6 +301,7 @@ in
|
||||
};
|
||||
})
|
||||
(mkIf comp.isNeoNomade{
|
||||
networking.hostName = "neo-nomade.dubronetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
isDubronetwork = true;
|
||||
isHome = true;
|
||||
@@ -314,6 +320,7 @@ in
|
||||
# Dubro Vivo - St Malo
|
||||
#tincAddress = "192.168.12.8/24";
|
||||
(mkIf comp.isNomade{
|
||||
networking.hostName = "nomade.dubronetwork.fr"; # Define your hostname.
|
||||
r6d.profiles.isDubronetwork = true;
|
||||
|
||||
r6d.config-generator = {
|
||||
@@ -353,6 +360,7 @@ in
|
||||
};
|
||||
})
|
||||
(mkIf comp.isRollo {
|
||||
networking.hostName = "rollo.dubronetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
isDubronetwork = true;
|
||||
isServer = true;
|
||||
@@ -363,6 +371,8 @@ in
|
||||
fail2ban = true;
|
||||
mailboxes = true;
|
||||
murmur = true;
|
||||
nix-serve-client = true;
|
||||
nix-serve-server = true;
|
||||
tincAddress = "192.168.12.5/24";
|
||||
tincExtraConfig = ''
|
||||
ConnectTo = ocean_prunetwork_fr
|
||||
|
||||
@@ -40,7 +40,7 @@ environment.systemPackages = with pkgs; [
|
||||
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
clawsMail = pkgs.clawsMail.override {
|
||||
enablePluginFancy = true;
|
||||
enablePluginFancy = false; # nécessite wekitgtk qui est troué
|
||||
enablePluginPdf = true;
|
||||
enablePluginRavatar = true;
|
||||
enablePluginSmime = true;
|
||||
@@ -49,4 +49,9 @@ environment.systemPackages = with pkgs; [
|
||||
};
|
||||
mumble = pkgs.mumble.override { pulseSupport = true; };
|
||||
};
|
||||
|
||||
#nixpkgs.config.permittedInsecurePackages = [
|
||||
# "webkitgtk-2.4.11" # pour que le plugin fancy de claws-mail fonctionne
|
||||
#];
|
||||
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ in
|
||||
pinentry # pour taper les mots de passe gpg
|
||||
psmisc # fournis les utilitaires comme killall, fuser, pstree
|
||||
python # python -- python -m SimpleHTTPServer 8000
|
||||
python34Packages.glances # monitoring
|
||||
#python34Packages.glances # monitoring
|
||||
pwgen # générateur de mot de passe
|
||||
rtorrent # TODO outil de téléchargement de torrent & magnet
|
||||
tmux # nécessaire pour byobu
|
||||
|
||||
Reference in New Issue
Block a user