Compare commits
11 Commits
2017-05-31
...
2017-06-03
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4dbcc8ddc0 | ||
|
|
3a5ae68f3a | ||
| 772cab2253 | |||
| 92bf72c7bf | |||
| 60f466a887 | |||
| eca3d77610 | |||
| 78ece5641d | |||
| cc851a7946 | |||
| aa22c6337d | |||
| acacc94903 | |||
| 1f480bbbff |
@@ -14,5 +14,8 @@ mkIf flags.graphical {
|
||||
# Gestion de FS
|
||||
gparted # Gestion graphique de partitions
|
||||
unetbootin # création de clefs USB bootables
|
||||
|
||||
# visualisation de log
|
||||
#logstalgia
|
||||
];
|
||||
}
|
||||
|
||||
@@ -24,12 +24,14 @@ mkIf currentMachine.profiles.isDesktopEnvironment {
|
||||
gnome3.adwaita-icon-theme # thème d'icone - semble fonctionner avec spaceFM
|
||||
|
||||
## Manipulation de fichier
|
||||
pcmanfm # gestionnaire de fichiers graphique
|
||||
spaceFM # gestionnaire de fichiers graphique
|
||||
#vifm # gestionnaire de fichiers basé sur VIM (console)
|
||||
#kde5.dolphin # gestionnaire de fichiers graphique
|
||||
#kde5.dolphin-plugins # gestionnaire de fichiers graphique
|
||||
pcmanfm # gestionnaire de fichiers graphique
|
||||
spaceFM # gestionnaire de fichiers graphique
|
||||
#vifm # gestionnaire de fichiers basé sur VIM (console)
|
||||
|
||||
## Terminal
|
||||
sakura # terminal
|
||||
sakura # terminal
|
||||
];
|
||||
|
||||
# Polices supplémentaires
|
||||
|
||||
@@ -11,6 +11,10 @@ mkIf flags.developpement {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Base de données
|
||||
pg_top # monitoring de PostgreSQL
|
||||
sqlite # le moteur de base de données
|
||||
|
||||
# C / C++
|
||||
gcc # pour les appels depuis les scripts
|
||||
|
||||
|
||||
@@ -15,18 +15,13 @@ in
|
||||
# TODO camel case partout
|
||||
# TODO everything in english
|
||||
# TODO sortir ce qui est privé
|
||||
# TODO portage du système d'annuaire de machines de capgemini
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
#* Utilisé pour avoir des raccourcis de machine
|
||||
r6d.computers = {
|
||||
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.";
|
||||
isPedro = mkEnableOption "Identification du nom de machine.";
|
||||
isPhenom = mkEnableOption "Identification du nom de machine.";
|
||||
isRollo = mkEnableOption "Identification du nom de machine.";
|
||||
};
|
||||
};
|
||||
@@ -56,50 +51,8 @@ in
|
||||
};
|
||||
})
|
||||
|
||||
## Profils liés à Dubronetwork
|
||||
(mkIf (pfl.isDubronetwork && 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;
|
||||
scanner = true;
|
||||
virtualbox = true;
|
||||
xmonad = true;
|
||||
};
|
||||
})
|
||||
|
||||
## Affectation des profils aux machines
|
||||
|
||||
(mkIf comp.isLatitude {
|
||||
networking.hostName = "latitude.dubronetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
isDubronetwork = true;
|
||||
isWorkstation = true;
|
||||
};
|
||||
|
||||
r6d.config-generator = {
|
||||
jetbrains-licensed = true;
|
||||
laptop = true;
|
||||
nix-serve-client = true;
|
||||
nix-serve-server = true;
|
||||
tincAddress = "192.168.12.2/24";
|
||||
tincExtraConfig = ''
|
||||
ConnectTo = monstre_dubronetwork_fr
|
||||
ConnectTo = rollo_dubronetwork_fr
|
||||
ConnectTo = hydra_prunetwork_fr
|
||||
ConnectTo = ocean_prunetwork_fr
|
||||
'';
|
||||
};
|
||||
})
|
||||
|
||||
(mkIf comp.isNeoNomade{
|
||||
networking.hostName = "neo-nomade.dubronetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
@@ -130,38 +83,6 @@ in
|
||||
laptop = true;
|
||||
};
|
||||
})
|
||||
(mkIf comp.isPedro {
|
||||
r6d.profiles = {
|
||||
isDubronetwork = true;
|
||||
isServer = true;
|
||||
};
|
||||
|
||||
r6d.config-generator = {
|
||||
fail2ban = true;
|
||||
};
|
||||
})
|
||||
(mkIf comp.isPhenom {
|
||||
networking.hostName = "phenom.dubronetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
isDubronetwork = true;
|
||||
isWorkstation = true;
|
||||
};
|
||||
|
||||
r6d.config-generator = {
|
||||
jetbrains-licensed = true;
|
||||
#hydra-core = true;
|
||||
nix-serve-client = true;
|
||||
nix-serve-server = true;
|
||||
edition-photo = true;
|
||||
tincAddress = "192.168.12.1/24";
|
||||
tincExtraConfig = ''
|
||||
ConnectTo = monstre_dubronetwork_fr
|
||||
ConnectTo = rollo_dubronetwork_fr
|
||||
ConnectTo = hydra_prunetwork_fr
|
||||
ConnectTo = ocean_prunetwork_fr
|
||||
'';
|
||||
};
|
||||
})
|
||||
(mkIf comp.isRollo {
|
||||
networking.hostName = "rollo.dubronetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
# Logs
|
||||
lol = log --graph --decorate --pretty=oneline --abbrev-commit
|
||||
lola = log --graph --decorate --pretty=oneline --abbrev-commit --all
|
||||
not-pushed = log --branches --not --remotes
|
||||
[push]
|
||||
default = simple
|
||||
[core]
|
||||
|
||||
5
lib.nix
5
lib.nix
@@ -13,6 +13,11 @@ let
|
||||
};
|
||||
isWorkstation = {
|
||||
docker = true;
|
||||
developpement = true;
|
||||
developpement-elm = true;
|
||||
developpement-haskell = true;
|
||||
developpement-java = true;
|
||||
developpement-rust = true;
|
||||
};
|
||||
#isServer = {
|
||||
#};
|
||||
|
||||
12
options.nix
12
options.nix
@@ -40,6 +40,7 @@ let
|
||||
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)";
|
||||
nixos-manual = mkEnableOption "Profil pour activer la documentation nixos en local sur un TTY";
|
||||
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";
|
||||
officeSuite = mkEnableOption "Profil pour la suite bureautique";
|
||||
@@ -124,7 +125,11 @@ let
|
||||
profiles = {
|
||||
# Domaine
|
||||
isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork.";
|
||||
isDubronetworkServer = mkEnableOption "Pour distinguer les machines dubronetwork avec Server.";
|
||||
isDubronetworkWorkstation = mkEnableOption "Pour distinguer les machines dubronetwork avec Workstation.";
|
||||
isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork.";
|
||||
isPrunetworkServer = mkEnableOption "Pour distinguer les machines prunetwork avec Server.";
|
||||
isPrunetworkWorkstation = mkEnableOption "Pour distinguer les machines prunetwork avec Workstation.";
|
||||
# Utilisation machine
|
||||
isDesktopEnvironment = mkEnableOption "Pour indiquer une machine avec interface graphique.";
|
||||
isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur.";
|
||||
@@ -153,10 +158,15 @@ in
|
||||
prototype : (expression A ) && tests || !(expression A) -> réalise le test si A est satisfait, et continue sinon = pas de politique
|
||||
*/
|
||||
assertions = [
|
||||
{
|
||||
assertion = (currentMachine.profiles.isWorkstation && (currentMachine.configurationFlags.graphical == true))
|
||||
|| (!currentMachine.profiles.isWorkstation);
|
||||
message = "A workstation requires a graphical environement.";
|
||||
}
|
||||
{
|
||||
assertion = (currentMachine.profiles.isDesktopEnvironment && (currentMachine.configurationFlags.graphical == true))
|
||||
|| (!currentMachine.profiles.isDesktopEnvironment);
|
||||
message = "A workstation requires a graphical environement.";
|
||||
message = "A desktop station requires a graphical environement.";
|
||||
}
|
||||
{
|
||||
assertion = (currentMachine.profiles.isDesktopEnvironment && (config.services.xserver.enable == true))
|
||||
|
||||
@@ -26,6 +26,7 @@ in
|
||||
./kibana.nix # service de visualisation de données stockées dans elasticsearch
|
||||
# TODO: réactiver locate
|
||||
#./locate.nix # service locate
|
||||
./nixos-manual.nix # documentation nixos sur TTY
|
||||
./virtualbox.nix # activer virtualbox
|
||||
./xmonad/xmonad.nix # pour le gestionaire de fenêtre xmonad
|
||||
|
||||
|
||||
33
services/nixos-manual.nix
Normal file
33
services/nixos-manual.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
annuaire = config.r6d.machines;
|
||||
currentMachine = annuaire."${config.networking.hostName}";
|
||||
flags = currentMachine.configurationFlags;
|
||||
in
|
||||
|
||||
mkIf flags.nixos-manual {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
bc
|
||||
mailutils
|
||||
];
|
||||
|
||||
# Services
|
||||
|
||||
## documentation sur ctrl + alt + F8
|
||||
services.nixosManual = {
|
||||
enable = true;
|
||||
showManual = true;
|
||||
};
|
||||
|
||||
# Réseau
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user