Compare commits
7 Commits
2017-05-19
...
2017-05-28
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
745d2cd171 | ||
|
|
259a1a0aa6 | ||
|
|
854eed9227 | ||
| 8ee09217cb | |||
| b15672c3ad | |||
| ab1d364327 | |||
| 67eadfab97 |
3
Makefile
3
Makefile
@@ -23,6 +23,9 @@ full-auto: submodules-update upgrade clean optimise
|
|||||||
optimise:
|
optimise:
|
||||||
$(TIME) nix-store --optimise
|
$(TIME) nix-store --optimise
|
||||||
|
|
||||||
|
rebuild-build:
|
||||||
|
$(TIME) time nixos-rebuild build --fallback --show-trace
|
||||||
|
|
||||||
rebuild-switch:
|
rebuild-switch:
|
||||||
$(TIME) time nixos-rebuild switch --fallback --show-trace
|
$(TIME) time nixos-rebuild switch --fallback --show-trace
|
||||||
|
|
||||||
|
|||||||
@@ -21,15 +21,12 @@ in
|
|||||||
options = {
|
options = {
|
||||||
#* Utilisé pour avoir des raccourcis de machine
|
#* Utilisé pour avoir des raccourcis de machine
|
||||||
r6d.computers = {
|
r6d.computers = {
|
||||||
isHydra = mkEnableOption "Identification du nom de machine.";
|
|
||||||
isLatitude = mkEnableOption "Identification du nom de machine.";
|
isLatitude = mkEnableOption "Identification du nom de machine.";
|
||||||
isMonstre = mkEnableOption "Identification du nom de machine.";
|
isMonstre = mkEnableOption "Identification du nom de machine.";
|
||||||
isNeoNomade = mkEnableOption "Identification du nom de machine.";
|
isNeoNomade = mkEnableOption "Identification du nom de machine.";
|
||||||
isNomade = 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.";
|
isPedro = mkEnableOption "Identification du nom de machine.";
|
||||||
isPhenom = 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.";
|
isRollo = mkEnableOption "Identification du nom de machine.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -40,16 +37,6 @@ in
|
|||||||
config = mkMerge
|
config = mkMerge
|
||||||
[
|
[
|
||||||
## Définition des profils génériques
|
## Définition des profils génériques
|
||||||
(mkIf pfl.isDesktopEnvironment {
|
|
||||||
r6d.config-generator = {
|
|
||||||
awesome = true;
|
|
||||||
internetSuite = true;
|
|
||||||
multimediaSuite = true;
|
|
||||||
officeSuite = true;
|
|
||||||
pulseaudio = true;
|
|
||||||
securitySuite = true;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(mkIf (pfl.isServer && !comp.isMonstre) {
|
(mkIf (pfl.isServer && !comp.isMonstre) {
|
||||||
r6d.config-generator = {
|
r6d.config-generator = {
|
||||||
#database_postgres = true;
|
#database_postgres = true;
|
||||||
@@ -68,23 +55,8 @@ in
|
|||||||
dns_resolveur = true;
|
dns_resolveur = true;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
(mkIf pfl.isWorkstation {
|
|
||||||
r6d.profiles.isDesktopEnvironment = true;
|
|
||||||
|
|
||||||
r6d.config-generator = {
|
|
||||||
docker = true;
|
|
||||||
graphical = true;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
||||||
## Profils liés à Dubronetwork
|
## Profils liés à Dubronetwork
|
||||||
(mkIf pfl.isDubronetwork {
|
|
||||||
r6d.config-generator = {
|
|
||||||
auto-upgrade = true;
|
|
||||||
locate = true;
|
|
||||||
print = true;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(mkIf (pfl.isDubronetwork && pfl.isWorkstation) {
|
(mkIf (pfl.isDubronetwork && pfl.isWorkstation) {
|
||||||
r6d.config-generator = {
|
r6d.config-generator = {
|
||||||
cartographie = true;
|
cartographie = true;
|
||||||
@@ -104,60 +76,7 @@ in
|
|||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
## Profils liés à Prunetwork
|
|
||||||
(mkIf pfl.isPrunetwork {
|
|
||||||
r6d.config-generator = {
|
|
||||||
auto-upgrade = true;
|
|
||||||
docker = true;
|
|
||||||
locate = true;
|
|
||||||
fail2ban = true;
|
|
||||||
smokeping = true;
|
|
||||||
swap = true;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(mkIf (pfl.isPrunetwork && pfl.isWorkstation) {
|
|
||||||
r6d.config-generator = {
|
|
||||||
cartographie = true;
|
|
||||||
conception-assistee = true;
|
|
||||||
docker = true;
|
|
||||||
developpement = true;
|
|
||||||
#developpement-elm = true;
|
|
||||||
developpement-haskell = true;
|
|
||||||
developpement-java = true;
|
|
||||||
developpement-rust = true;
|
|
||||||
edition-musique = true;
|
|
||||||
edition-photo = true;
|
|
||||||
edition-video = true;
|
|
||||||
hydra-core = false; # DO NOT ENABLE ON WORKSTATION, YOU CAN CRASH YOUR SYSTEM
|
|
||||||
print = true;
|
|
||||||
scanner = true;
|
|
||||||
#virtualbox = true;
|
|
||||||
#xmonad = true;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
## Affectation des profils aux machines
|
## Affectation des profils aux machines
|
||||||
(mkIf comp.isOcean {
|
|
||||||
networking.hostName = "ocean.prunetwork.fr"; # Define your hostname.
|
|
||||||
r6d.profiles = {
|
|
||||||
isPrunetwork = true;
|
|
||||||
isServer = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
r6d.config-generator = {
|
|
||||||
docker = true;
|
|
||||||
hydra-builder = true;
|
|
||||||
radicale = true;
|
|
||||||
nix-serve-client = true;
|
|
||||||
nix-serve-server = true;
|
|
||||||
tincAddress = "192.168.12.6/24";
|
|
||||||
tincExtraConfig = ''
|
|
||||||
ConnectTo = hydra_prunetwork_fr
|
|
||||||
ConnectTo = rollo_dubronetwork_fr
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
})
|
|
||||||
|
|
||||||
(mkIf comp.isLatitude {
|
(mkIf comp.isLatitude {
|
||||||
networking.hostName = "latitude.dubronetwork.fr"; # Define your hostname.
|
networking.hostName = "latitude.dubronetwork.fr"; # Define your hostname.
|
||||||
|
|||||||
30
lib.nix
Normal file
30
lib.nix
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
let
|
||||||
|
lib = with import <nixpkgs> {}; pkgs.lib;
|
||||||
|
|
||||||
|
profiles = {
|
||||||
|
isDesktopEnvironment = {
|
||||||
|
awesome = true;
|
||||||
|
internetSuite = true;
|
||||||
|
multimediaSuite = true;
|
||||||
|
officeSuite = true;
|
||||||
|
pulseaudio = true;
|
||||||
|
securitySuite = true;
|
||||||
|
};
|
||||||
|
isWorkstation = {
|
||||||
|
graphical = true;
|
||||||
|
docker = true;
|
||||||
|
};
|
||||||
|
isServer = {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
rec {
|
||||||
|
applyProfilesToDirectory = customProfiles: directory:
|
||||||
|
lib.mapAttrs (applyProfilesToMachine customProfiles) directory;
|
||||||
|
|
||||||
|
applyProfilesToMachine = customProfiles: machineName: machineOptions:
|
||||||
|
machineOptions;
|
||||||
|
#lib.recursiveUpdate {} machineOptions;
|
||||||
|
}
|
||||||
@@ -38,6 +38,7 @@ let
|
|||||||
locate = mkEnableOption "Profil pour activer la fonction locate.";
|
locate = mkEnableOption "Profil pour activer la fonction locate.";
|
||||||
mailboxes = mkEnableOption "Profil pour stocker les mails dans des boîtes aux lettres.";
|
mailboxes = mkEnableOption "Profil pour stocker les mails dans des boîtes aux lettres.";
|
||||||
multimediaSuite = mkEnableOption "Profil pour la suite multimédia.";
|
multimediaSuite = mkEnableOption "Profil pour la suite multimédia.";
|
||||||
|
munin = mkEnableOption "Profil pour activer la supervision par Munin";
|
||||||
murmur = mkEnableOption "Profil pour activer un serveur Mumble (murmur)";
|
murmur = mkEnableOption "Profil pour activer un serveur Mumble (murmur)";
|
||||||
nix-serve-server = mkEnableOption "Profil pour que la machine soit un serveur 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";
|
nixStoreProxyCache = mkEnableOption "Profil pour activer le proxy cahce nginx pour le nix store";
|
||||||
|
|||||||
@@ -11,22 +11,32 @@ mkIf flags.hydra-builder {
|
|||||||
|
|
||||||
# Paquets
|
# Paquets
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
qemu
|
|
||||||
kvm
|
kvm
|
||||||
|
qemu
|
||||||
|
virtualbox
|
||||||
];
|
];
|
||||||
|
|
||||||
# Services
|
# Services
|
||||||
|
|
||||||
## Services de virtualisation utilisé pour les tests hydra
|
## Services de virtualisation utilisé pour les tests hydra
|
||||||
virtualisation.docker.enable = true;
|
virtualisation = {
|
||||||
virtualisation.libvirtd.enable = true;
|
docker.enable = true;
|
||||||
virtualisation.libvirtd.enableKVM = true;
|
libvirtd = {
|
||||||
#virtualisation.virtualbox.guest.enable = true;
|
enable = true;
|
||||||
virtualisation.virtualbox.host.enable = true;
|
enableKVM = true;
|
||||||
virtualisation.virtualbox.host.headless = true;
|
};
|
||||||
|
virtualbox = {
|
||||||
|
#guest.enable = true;
|
||||||
|
host.enable = true;
|
||||||
|
host.headless = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
## Ménage automatique tous les jours
|
## Ménage automatique tous les jours - Frequent garbage collection is a good idea for build machines.
|
||||||
nix.gc.automatic = true;
|
nix.gc = {
|
||||||
|
automatic = true;
|
||||||
|
dates = "*:0/30";
|
||||||
|
};
|
||||||
|
|
||||||
# users.users."hydrabld" = {
|
# users.users."hydrabld" = {
|
||||||
# description = "Execution des jobs hydra";
|
# description = "Execution des jobs hydra";
|
||||||
|
|||||||
@@ -7,9 +7,8 @@ let
|
|||||||
flags = currentMachine.configuration-flags;
|
flags = currentMachine.configuration-flags;
|
||||||
in
|
in
|
||||||
|
|
||||||
# TODO: ajouter option
|
|
||||||
# TODO: changer adresse mail
|
# TODO: changer adresse mail
|
||||||
mkIf true {
|
mkIf flags.munin {
|
||||||
|
|
||||||
# Paquets
|
# Paquets
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
|||||||
Reference in New Issue
Block a user