Compare commits
15 Commits
2017-01-30
...
93254f45c0
| Author | SHA1 | Date | |
|---|---|---|---|
| 93254f45c0 | |||
| c1ce935adb | |||
| e68cbcd8b9 | |||
| ac39a52fd7 | |||
| 3dc8184bca | |||
| 24ef44b100 | |||
| 9e9ea00cd2 | |||
|
|
493249ebd3 | ||
| e0a468bfeb | |||
| c4013be348 | |||
| 6cdd621db2 | |||
| a5bfdbcd3d | |||
| 5b954581db | |||
| ca11b46674 | |||
| aad2931967 |
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
|
||||
~~~
|
||||
|
||||
|
||||
@@ -13,6 +13,11 @@ mkIf cfg.nix-serve-client {
|
||||
# Cache http pour le store
|
||||
requireSignedBinaryCaches = false;
|
||||
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.isPrunetwork "https://cache.nixos.org/")
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -9,114 +9,114 @@ let
|
||||
in
|
||||
|
||||
{
|
||||
###### interface
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
options = {
|
||||
|
||||
#* Utilisé pour afecter des capacités aux machines
|
||||
r6d.profiles = {
|
||||
# Domaine
|
||||
isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork.";
|
||||
isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork.";
|
||||
# Utilisation machine
|
||||
isDesktop = mkEnableOption "Pour indiquer une machine avec interface graphique.";
|
||||
isHome = mkEnableOption "Pour indiquer que la machine sert à la maison (divertissement & autre).";
|
||||
isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur.";
|
||||
isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler.";
|
||||
};
|
||||
|
||||
#* Utilisé dans les fichiers .nix
|
||||
r6d.config-generator = {
|
||||
#enable = mkEnableOption "Génération de la configuration d'une machine.";
|
||||
awesome = mkEnableOption "Profil pour activer le gestionnaire de fenêtre awesome.";
|
||||
auto-upgrade = mkEnableOption "Profil pour activer les mises à jour automatiques.";
|
||||
cartographie = mkEnableOption "Profil pour activer les outils de gestion de données géographiques.";
|
||||
conception-assistee = mkEnableOption "Profil pour activer les outils de conception électronique & modélisation 3D";
|
||||
database_postgres = mkEnableOption "Profil pour activer le SGBD PostgreSQL.";
|
||||
developpement = mkEnableOption "Profil pour activer les outils de développement";
|
||||
developpement-haskell = mkEnableOption "Profil pour activer les outils de développement Haskell";
|
||||
developpement-java = mkEnableOption "Profil pour activer les outils de développement Java";
|
||||
developpement-rust = mkEnableOption "Profil pour activer les outils de développement Rust";
|
||||
docker = mkEnableOption "Profil pour l'utilisation de Docker.";
|
||||
dovecot = mkEnableOption "Profil pour activer le serveur Dovecot.";
|
||||
dns_autorite = mkEnableOption "Profil pour servir les fichiers de zone DNS.";
|
||||
dns_resolveur = mkEnableOption "Profil pour activer un résolveur DNS local.";
|
||||
edition-musique = mkEnableOption "Profil pour la création/édition de musique.";
|
||||
edition-photo = mkEnableOption "Profil pour la création/édition de photos.";
|
||||
edition-video = mkEnableOption "Profil pour la création/édition de video.";
|
||||
elasticsearch = mkEnableOption "Profil pour activer le service elasticsearch.";
|
||||
fail2ban = mkEnableOption "Profil pour activer Fail2ban.";
|
||||
hydra-builder = mkEnableOption "Profil pour une machine qui compile pour hydra.";
|
||||
hydra-core = mkEnableOption "Profil pour un serveur hydra.";
|
||||
kibana = mkEnableOption "Profil pour activer le service kibana.";
|
||||
jetbrains-licensed = mkEnableOption "Profil pour la suite de développement Jetbrains payante (sous-ensemble).";
|
||||
jeux = mkEnableOption "Profil pour les jeux vidéos.";
|
||||
laptop = mkEnableOption "Profil pour les outils spécifiques aux ordinateurs portables.";
|
||||
locate = mkEnableOption "Profil pour activer la fonction locate.";
|
||||
mailboxes = mkEnableOption "Profil pour stocker les mails dans des boîtes aux lettres.";
|
||||
murmur = mkEnableOption "Profil pour activer un serveur Mumble (murmur)";
|
||||
nix-serve-client = mkEnableOption "Profil pour que la machine soit un client de cache nix.";
|
||||
nix-serve-server = mkEnableOption "Profil pour que la machine soit un serveur de cache nix.";
|
||||
nixStoreProxyCache = mkEnableOption "Profil pour activer le proxy cahce nginx pour le nix store";
|
||||
print = mkEnableOption "Profil pour activer cups & pouvoir imprimer.";
|
||||
rabbitmq = mkEnableOption "Profil pour activer le service de messagerie AMQP.";
|
||||
radicale = mkEnableOption "Profil pour activer le service d'hébergement de calendrier + tâches & contacts.";
|
||||
scanner = mkEnableOption "Profil pour que les scanners soient utilisable.";
|
||||
swap = mkEnableOption "Profil pour que le swap soit activé.";
|
||||
virtualbox = mkEnableOption "Profil pour l'utilisation de VirtualBox.";
|
||||
xmonad = mkEnableOption "Profil pour activer le gestionnaire de fenêtres xmonad.";
|
||||
znc = mkEnableOption "Profil pour activer le relais IRC ZNC.";
|
||||
|
||||
tincAddress = mkOption {
|
||||
default = "";
|
||||
example = "192.168.1.1";
|
||||
description = "Adresse du noeud tinc local";
|
||||
type = lib.types.string;
|
||||
#* Utilisé pour afecter des capacités aux machines
|
||||
r6d.profiles = {
|
||||
# Domaine
|
||||
isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork.";
|
||||
isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork.";
|
||||
# Utilisation machine
|
||||
isDesktop = mkEnableOption "Pour indiquer une machine avec interface graphique.";
|
||||
isHome = mkEnableOption "Pour indiquer que la machine sert à la maison (divertissement & autre).";
|
||||
isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur.";
|
||||
isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler.";
|
||||
};
|
||||
tincExtraConfig = mkOption {
|
||||
default = "";
|
||||
example = ''
|
||||
|
||||
#* Utilisé dans les fichiers .nix
|
||||
r6d.config-generator = {
|
||||
enable = mkEnableOption "Génération de la configuration d'une machine.";
|
||||
awesome = mkEnableOption "Profil pour activer le gestionnaire de fenêtre awesome.";
|
||||
auto-upgrade = mkEnableOption "Profil pour activer les mises à jour automatiques.";
|
||||
cartographie = mkEnableOption "Profil pour activer les outils de gestion de données géographiques.";
|
||||
conception-assistee = mkEnableOption "Profil pour activer les outils de conception électronique & modélisation 3D";
|
||||
database_postgres = mkEnableOption "Profil pour activer le SGBD PostgreSQL.";
|
||||
developpement = mkEnableOption "Profil pour activer les outils de développement";
|
||||
developpement-haskell = mkEnableOption "Profil pour activer les outils de développement Haskell";
|
||||
developpement-java = mkEnableOption "Profil pour activer les outils de développement Java";
|
||||
developpement-rust = mkEnableOption "Profil pour activer les outils de développement Rust";
|
||||
docker = mkEnableOption "Profil pour l'utilisation de Docker.";
|
||||
dovecot = mkEnableOption "Profil pour activer le serveur Dovecot.";
|
||||
dns_autorite = mkEnableOption "Profil pour servir les fichiers de zone DNS.";
|
||||
dns_resolveur = mkEnableOption "Profil pour activer un résolveur DNS local.";
|
||||
edition-musique = mkEnableOption "Profil pour la création/édition de musique.";
|
||||
edition-photo = mkEnableOption "Profil pour la création/édition de photos.";
|
||||
edition-video = mkEnableOption "Profil pour la création/édition de video.";
|
||||
elasticsearch = mkEnableOption "Profil pour activer le service elasticsearch.";
|
||||
fail2ban = mkEnableOption "Profil pour activer Fail2ban.";
|
||||
hydra-builder = mkEnableOption "Profil pour une machine qui compile pour hydra.";
|
||||
hydra-core = mkEnableOption "Profil pour un serveur hydra.";
|
||||
kibana = mkEnableOption "Profil pour activer le service kibana.";
|
||||
jetbrains-licensed = mkEnableOption "Profil pour la suite de développement Jetbrains payante (sous-ensemble).";
|
||||
jeux = mkEnableOption "Profil pour les jeux vidéos.";
|
||||
laptop = mkEnableOption "Profil pour les outils spécifiques aux ordinateurs portables.";
|
||||
locate = mkEnableOption "Profil pour activer la fonction locate.";
|
||||
mailboxes = mkEnableOption "Profil pour stocker les mails dans des boîtes aux lettres.";
|
||||
murmur = mkEnableOption "Profil pour activer un serveur Mumble (murmur)";
|
||||
nix-serve-client = mkEnableOption "Profil pour que la machine soit un client de cache nix.";
|
||||
nix-serve-server = mkEnableOption "Profil pour que la machine soit un serveur de cache nix.";
|
||||
nixStoreProxyCache = mkEnableOption "Profil pour activer le proxy cahce nginx pour le nix store";
|
||||
print = mkEnableOption "Profil pour activer cups & pouvoir imprimer.";
|
||||
rabbitmq = mkEnableOption "Profil pour activer le service de messagerie AMQP.";
|
||||
radicale = mkEnableOption "Profil pour activer le service d'hébergement de calendrier + tâches & contacts.";
|
||||
scanner = mkEnableOption "Profil pour que les scanners soient utilisable.";
|
||||
swap = mkEnableOption "Profil pour que le swap soit activé.";
|
||||
virtualbox = mkEnableOption "Profil pour l'utilisation de VirtualBox.";
|
||||
xmonad = mkEnableOption "Profil pour activer le gestionnaire de fenêtres xmonad.";
|
||||
znc = mkEnableOption "Profil pour activer le relais IRC ZNC.";
|
||||
|
||||
tincAddress = mkOption {
|
||||
default = "";
|
||||
example = "192.168.1.1";
|
||||
description = "Adresse du noeud tinc local";
|
||||
type = lib.types.string;
|
||||
};
|
||||
tincExtraConfig = mkOption {
|
||||
default = "";
|
||||
example = ''
|
||||
Mode = router
|
||||
ConnecTo = bar
|
||||
'';
|
||||
description = "Configuration supplémentaire pour tinc";
|
||||
type = lib.types.string;
|
||||
'';
|
||||
description = "Configuration supplémentaire pour tinc";
|
||||
type = lib.types.string;
|
||||
};
|
||||
};
|
||||
#* Utilisé pour avoir des raccourcis de machine
|
||||
r6d.computers = {
|
||||
isHydra = mkEnableOption "Identification du nom de machine.";
|
||||
isLatitude = mkEnableOption "Identification du nom de machine.";
|
||||
isMonstre = mkEnableOption "Identification du nom de machine.";
|
||||
isNeoNomade = mkEnableOption "Identification du nom de machine.";
|
||||
isNomade = mkEnableOption "Identification du nom de machine.";
|
||||
isOcean = mkEnableOption "Identification du nom de machine.";
|
||||
isPedro = mkEnableOption "Identification du nom de machine.";
|
||||
isPhenom = mkEnableOption "Identification du nom de machine.";
|
||||
isRadx = mkEnableOption "Identification du nom de machine.";
|
||||
isRollo = mkEnableOption "Identification du nom de machine.";
|
||||
};
|
||||
};
|
||||
#* Utilisé pour avoir des raccourcis de machine
|
||||
r6d.computers = {
|
||||
isHydra = mkEnableOption "Identification du nom de machine.";
|
||||
isLatitude = mkEnableOption "Identification du nom de machine.";
|
||||
isMonstre = mkEnableOption "Identification du nom de machine.";
|
||||
isNeoNomade = mkEnableOption "Identification du nom de machine.";
|
||||
isNomade = mkEnableOption "Identification du nom de machine.";
|
||||
isOcean = mkEnableOption "Identification du nom de machine.";
|
||||
isPedro = mkEnableOption "Identification du nom de machine.";
|
||||
isPhenom = mkEnableOption "Identification du nom de machine.";
|
||||
isRadx = mkEnableOption "Identification du nom de machine.";
|
||||
isRollo = mkEnableOption "Identification du nom de machine.";
|
||||
};
|
||||
};
|
||||
|
||||
###### implementation
|
||||
# https://nixos.org/releases/nixos/14.12-small/nixos-14.12.374.61adf9e/manual/sec-writing-modules.html
|
||||
# https://nixos.org/wiki/NixOS:extend_NixOS
|
||||
config = mkMerge
|
||||
[ # Unconditional stuff.
|
||||
{
|
||||
#r6d.config-generator.enable = true;
|
||||
# r6d.computers = {
|
||||
# isHydra = host == "hydra.prunetwork.fr";
|
||||
# isLatitude = host == "latitude.dubronetwork.fr";
|
||||
# isMonstre = host == "monstre.dubronetwork.fr";
|
||||
# isNeoNomade = host == "neo-nomade.dubronetwork.fr";
|
||||
# isNomade = host == "nomade.dubronetwork.fr";
|
||||
# isOcean = host == "ocean.prunetwork.fr";
|
||||
# isPedro = host == "pedro.dubronetwork.fr";
|
||||
# isPhenom = host == "phenom.dubronetwork.fr";
|
||||
# isRadx = host == "radx.prunetwork.fr";
|
||||
# isRollo = host == "rollo.dubronetwork.fr";
|
||||
# };
|
||||
###### implementation
|
||||
# https://nixos.org/releases/nixos/14.12-small/nixos-14.12.374.61adf9e/manual/sec-writing-modules.html
|
||||
# https://nixos.org/wiki/NixOS:extend_NixOS
|
||||
config = mkMerge
|
||||
[ # Unconditional stuff.
|
||||
{
|
||||
r6d.config-generator.enable = true;
|
||||
r6d.computers = {
|
||||
isHydra = host == "hydra.prunetwork.fr";
|
||||
isLatitude = host == "latitude.dubronetwork.fr";
|
||||
isMonstre = host == "monstre.dubronetwork.fr";
|
||||
isNeoNomade = host == "neo-nomade.dubronetwork.fr";
|
||||
isNomade = host == "nomade.dubronetwork.fr";
|
||||
isOcean = host == "ocean.prunetwork.fr";
|
||||
isPedro = host == "pedro.dubronetwork.fr";
|
||||
isPhenom = host == "phenom.dubronetwork.fr";
|
||||
isRadx = host == "radx.prunetwork.fr";
|
||||
isRollo = host == "rollo.dubronetwork.fr";
|
||||
};
|
||||
}
|
||||
|
||||
# Conditional stuff
|
||||
@@ -210,7 +210,6 @@ in
|
||||
|
||||
## Affectation des profils aux machines
|
||||
(mkIf comp.isHydra {
|
||||
networking.hostName = "hydra.prunetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
isPrunetwork = true;
|
||||
isServer = true;
|
||||
@@ -220,14 +219,14 @@ in
|
||||
docker = true;
|
||||
hydra-builder = true;
|
||||
hydra-core = true;
|
||||
#tincAddress = "192.168.12.6/24";
|
||||
#tincExtraConfig = ''
|
||||
# ConnectTo = rollo_dubronetwork_fr
|
||||
# '';
|
||||
tincAddress = "192.168.12.8/24";
|
||||
tincExtraConfig = ''
|
||||
ConnectTo = rollo_dubronetwork_fr
|
||||
ConnectTo = ocean_prunetwork_fr
|
||||
'';
|
||||
};
|
||||
})
|
||||
(mkIf comp.isOcean {
|
||||
networking.hostName = "ocean.prunetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
isPrunetwork = true;
|
||||
isServer = true;
|
||||
@@ -236,14 +235,15 @@ 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
|
||||
'';
|
||||
'';
|
||||
};
|
||||
})
|
||||
(mkIf comp.isRadx {
|
||||
networking.hostName = "radx.prunetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
isHome = true;
|
||||
isPrunetwork = true;
|
||||
@@ -261,7 +261,7 @@ in
|
||||
ConnectTo = monstre_dubronetwork_fr
|
||||
ConnectTo = rollo_dubronetwork_fr
|
||||
ConnectTo = ocean_prunetwork_fr
|
||||
'';
|
||||
'';
|
||||
};
|
||||
})
|
||||
|
||||
@@ -280,7 +280,7 @@ in
|
||||
ConnectTo = monstre_dubronetwork_fr
|
||||
ConnectTo = rollo_dubronetwork_fr
|
||||
ConnectTo = ocean_prunetwork_fr
|
||||
'';
|
||||
'';
|
||||
nix-serve-server = true;
|
||||
};
|
||||
})
|
||||
@@ -300,7 +300,7 @@ in
|
||||
tincExtraConfig = ''
|
||||
ConnectTo = rollo_dubronetwork_fr
|
||||
ConnectTo = ocean_prunetwork_fr
|
||||
'';
|
||||
'';
|
||||
};
|
||||
})
|
||||
(mkIf comp.isNeoNomade{
|
||||
@@ -316,7 +316,7 @@ in
|
||||
ConnectTo = monstre_dubronetwork_fr
|
||||
ConnectTo = rollo_dubronetwork_fr
|
||||
ConnectTo = ocean_prunetwork_fr
|
||||
'';
|
||||
'';
|
||||
};
|
||||
})
|
||||
(mkIf comp.isNomade{
|
||||
@@ -337,7 +337,6 @@ in
|
||||
};
|
||||
})
|
||||
(mkIf comp.isPhenom {
|
||||
networking.hostName = "phenom.dubronetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
isDubronetwork = true;
|
||||
isHome = true;
|
||||
@@ -346,7 +345,7 @@ in
|
||||
|
||||
r6d.config-generator = {
|
||||
jetbrains-licensed = true;
|
||||
#hydra-core = true;
|
||||
hydra-core = true;
|
||||
nix-serve-server = true;
|
||||
edition-photo = true;
|
||||
tincAddress = "192.168.12.1/24";
|
||||
@@ -354,7 +353,7 @@ in
|
||||
ConnectTo = monstre_dubronetwork_fr
|
||||
ConnectTo = rollo_dubronetwork_fr
|
||||
ConnectTo = ocean_prunetwork_fr
|
||||
'';
|
||||
'';
|
||||
};
|
||||
})
|
||||
(mkIf comp.isRollo {
|
||||
@@ -368,10 +367,12 @@ 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
|
||||
'';
|
||||
'';
|
||||
znc = true;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -36,7 +36,6 @@ mkIf true {
|
||||
exfat # Pour monter les FAT avec Fuse
|
||||
hubicfuse # montage hubic
|
||||
ntfs3g # ntfs
|
||||
squashfsTools # squashfs
|
||||
sshfsFuse # ssh
|
||||
|
||||
## Gestion de FS
|
||||
@@ -44,7 +43,6 @@ mkIf true {
|
||||
|
||||
## Exploitation FS
|
||||
inotify-tools # être notifié lorsque le contenu d'un répertoire change
|
||||
detox # The detox utility renames files to make them easier to work with.
|
||||
duff # outil de recherche de fichiers en doublons
|
||||
rdfind # recherche de fichiers doublons pour remplacement par hard/soft link
|
||||
|
||||
|
||||
@@ -22,10 +22,5 @@ mkIf cfg.developpement-haskell {
|
||||
|
||||
# Application perso
|
||||
haskellPackages.hahp
|
||||
|
||||
# Application
|
||||
haskellPackages.autoproc # ? procmail
|
||||
haskellPackages.darcs # Gestionnaire de version éponyme
|
||||
haskellPackages.turtle # genre shell-scripting
|
||||
];
|
||||
}
|
||||
|
||||
@@ -16,8 +16,7 @@ in
|
||||
#./network-ipv6.nix
|
||||
./sudo.nix
|
||||
./service-haveged.nix
|
||||
./service-monitoring-munin.nix
|
||||
./service-monitoring-smokeping.nix
|
||||
./service-monitoring.nix
|
||||
./service-ssh.nix
|
||||
./udev.nix
|
||||
|
||||
|
||||
@@ -1,194 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf true {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
bind
|
||||
];
|
||||
|
||||
security.setuidPrograms = [ "fping" ];
|
||||
|
||||
# Services
|
||||
|
||||
services.smokeping = {
|
||||
enable = true;
|
||||
probeConfig = ''
|
||||
+ FPing
|
||||
#binary = ${pkgs.fping}/bin/fping
|
||||
binary = ${config.security.wrapperDir}/fping
|
||||
|
||||
+DNS
|
||||
#binary = ${pkgs.bind}/bin/dig
|
||||
binary = /run/current-system/sw/bin/dig
|
||||
forks = 5
|
||||
offset = 50%
|
||||
step = 300
|
||||
timeout = 15
|
||||
'';
|
||||
targetConfig = ''
|
||||
probe = FPing
|
||||
menu = Top
|
||||
title = Suivi de la latence reseau
|
||||
remark = Monitoring de la latence reseau. \
|
||||
Here you will learn all about the latency of our network.
|
||||
+ Local
|
||||
probe = FPing
|
||||
menu = Local
|
||||
title = Local Network
|
||||
++ LocalMachine
|
||||
menu = Local Machine
|
||||
title = This host
|
||||
host = localhost
|
||||
|
||||
+ Grudu_Tinc
|
||||
probe = FPing
|
||||
title = Grudu_Tinc
|
||||
menu = Grudu.net - Tinc
|
||||
|
||||
++ Hydra
|
||||
menu = hydra.grudu.net
|
||||
title = hydra.grudu.net
|
||||
host = hydra.grudu.net
|
||||
|
||||
++ Monstre
|
||||
menu = monstre.grudu.net
|
||||
title = monstre.grudu.net
|
||||
host = monstre.grudu.net
|
||||
|
||||
++ Rollo
|
||||
menu = rollo.grudu.net
|
||||
title = rollo.grudu.net
|
||||
host = rollo.grudu.net
|
||||
|
||||
++ Ocean
|
||||
menu = ocean.grudu.net
|
||||
title = ocean.grudu.net
|
||||
host = ocean.grudu.net
|
||||
|
||||
++ MultiHost
|
||||
menu = Multihost
|
||||
title = Ensemble de mesures de latence
|
||||
host = /Grudu_Tinc/Monstre /Grudu_Tinc/Rollo /Grudu_Tinc/Ocean /Grudu_Tinc/Hydra
|
||||
|
||||
+ Grudu_DNS
|
||||
title = Grudu_DNS
|
||||
menu = Grudu.net - DNS
|
||||
probe = DNS
|
||||
pings = 5
|
||||
++ Ocean
|
||||
title = ocean
|
||||
menu = serveur ocean
|
||||
server = ocean.prunetwork.fr
|
||||
+++ ocean
|
||||
host = ocean.grudu.net
|
||||
lookup = ocean.grudu.net
|
||||
+++ rollo
|
||||
host = rollo.grudu.net
|
||||
lookup = rollo.grudu.net
|
||||
++ Rollo
|
||||
title = rollo
|
||||
menu = serveur rollo
|
||||
server = rollo.dubronetwork.fr
|
||||
+++ ocean
|
||||
host = ocean.grudu.net
|
||||
lookup = ocean.grudu.net
|
||||
+++ rollo
|
||||
host = rollo.grudu.net
|
||||
lookup = rollo.grudu.net
|
||||
++ MultiHost
|
||||
menu = Multihost
|
||||
title = Ensemble de mesures DNS
|
||||
host = /Grudu_DNS/Ocean/ocean /Grudu_DNS/Ocean/rollo /Grudu_DNS/Rollo/ocean /Grudu_DNS/Rollo/rollo
|
||||
+ France
|
||||
probe = FPing
|
||||
title = France
|
||||
menu = Operateur francais
|
||||
|
||||
++ Atos
|
||||
menu = Atos
|
||||
title = www.atos.fr
|
||||
host = www.atos.fr
|
||||
|
||||
++ Axialys
|
||||
menu = Axialys
|
||||
title = www.axialys.fr
|
||||
host = www.axialys.fr
|
||||
|
||||
++ Azurtel
|
||||
menu = azurtel
|
||||
title = www.azurtel.fr
|
||||
host = www.azurtel.fr
|
||||
|
||||
++ Bouygues-Telecom
|
||||
menu = Bouygues-Telecom
|
||||
title = www.bouygues-telecom.fr
|
||||
host = www.bouygues-telecom.fr
|
||||
|
||||
++ Colt
|
||||
menu = Colt
|
||||
title = www.colt.fr
|
||||
host = www.colt.fr
|
||||
|
||||
++ Completel
|
||||
menu = completel
|
||||
title = www.completel.fr
|
||||
host = www.completel.fr
|
||||
|
||||
++ Free
|
||||
menu = Free
|
||||
title = www.free.fr
|
||||
host = www.free.fr
|
||||
|
||||
++ Kosmos
|
||||
menu = Kosmos
|
||||
title = www.kosmos.fr
|
||||
host = www.kosmos.fr
|
||||
|
||||
++ Orange
|
||||
menu = Orange
|
||||
title = www.orange.fr
|
||||
host = www.orange.fr
|
||||
|
||||
++ Renater
|
||||
menu = Renater
|
||||
title = www.renater.fr
|
||||
host = www.renater.fr
|
||||
|
||||
++ SFR
|
||||
menu = SFR
|
||||
title = www.sfr.fr
|
||||
host = www.sfr.fr
|
||||
|
||||
++ MultiHost
|
||||
menu = Multihost
|
||||
title = Ensemble de mesures DNS
|
||||
host = /France/Atos /France/Axialys /France/Azurtel \
|
||||
/France/Bouygues-Telecom \
|
||||
/France/Completel \
|
||||
/France/Free \
|
||||
/France/Kosmos \
|
||||
/France/Orange \
|
||||
/France/Renater \
|
||||
/France/SFR
|
||||
|
||||
# /France/Colt
|
||||
'';
|
||||
};
|
||||
|
||||
# Réseau
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [
|
||||
#8081 # accès depuis localhost uniquement ou à travers un proxy nginx
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -21,10 +21,7 @@ mkIf true {
|
||||
services.munin-node = {
|
||||
enable = true;
|
||||
};
|
||||
systemd.services.munin-node = {
|
||||
path = [ pkgs.munin pkgs.lm_sensors ];
|
||||
serviceConfig.TimeoutStartSec = "3min";
|
||||
};
|
||||
systemd.services.munin-node.serviceConfig.TimeoutStartSec = "3min";
|
||||
|
||||
## Munin server -- generate /var/www/munin
|
||||
services.munin-cron = {
|
||||
@@ -13,7 +13,6 @@ mkIf profiles.isDesktop {
|
||||
hardware.pulseaudio = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
daemon.config = { flat-volumes = "no"; };
|
||||
};
|
||||
#environment.etc."pulse/daemon.conf".text = "flat-volumes = no";
|
||||
environment.etc."pulse/daemon.conf".text = "flat-volumes = no";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user