Compare commits

..

33 Commits

Author SHA1 Message Date
Yves Dubromelle
21d7c97c76 readme: ajustement sur le bootloader 2016-10-17 12:54:27 +02:00
Yves Dubromelle
3a8a728268 lors d'une full-auto, on ne force pas à être sur la branche master 2016-10-17 11:21:05 +02:00
a5aae179a2 Mettre à jour 'README.md' 2016-10-17 08:25:22 +00:00
95e8687609 précision sur le channel 2016-10-17 10:19:21 +02:00
8e35b38d19 Merge remote-tracking branch 'origin/master' into upgrade-16.09 2016-10-17 10:17:04 +02:00
51dd0b65f4 correction régression sur hostname 2016-10-17 10:06:24 +02:00
04038a7b16 fusion des dichiers README (oups) 2016-10-17 09:46:53 +02:00
4fbf145c78 ajout README 2016-10-17 09:29:47 +02:00
821d46befe désactivation par défaut de x11 : doit être explicitement appelé 2016-10-17 09:29:21 +02:00
807b1bc2e6 activation dbus 2016-10-16 17:28:48 +02:00
4b5eacda0f x11: paramètres non nécessaires car les valeurs par défaut sont OK 2016-10-16 01:53:42 +02:00
18f960b879 Revert "x11: paramètres non nécessaires car les valeurs par défaut sont OK"
This reverts commit a8e28e594a.
2016-10-16 01:52:49 +02:00
a8e28e594a x11: paramètres non nécessaires car les valeurs par défaut sont OK 2016-10-16 01:39:26 +02:00
758e8ba84a MaJ des nom de paquets (cf. release note) 2016-10-16 01:08:04 +02:00
1d3f46c2ec texlive nouvelle archi (2015 ...) 2016-10-16 00:10:12 +02:00
3ccc8678ce ajout outil wifi pour profil laptop 2016-10-10 22:11:44 +02:00
Yves Dubromelle
215005d927 installation des outils réseaux sur toutes les machines 2016-10-09 18:43:01 +02:00
Yves Dubromelle
9fb124116d phenom: permet de modifier les photo + profil laptop (pour carte wifi) 2016-10-06 21:47:44 +02:00
Yves Dubromelle
d65ee1bd2c bonnes pratiques selon nixos 2016-10-05 00:01:33 +02:00
Yves Dubromelle
dce7b12a33 ajout pmisc 2016-10-05 00:01:33 +02:00
826595cb6c radx peut imprimer 2016-09-27 23:08:04 +02:00
b633d3c794 les machines @home peuvent utiliser le cache sur monstre 2016-09-27 23:07:44 +02:00
5444be4fd2 copie de configuration.nix par nix dans l'environement courant 2016-09-20 15:21:48 +02:00
9b4a4f1b67 ssh: ajout lien best practices 2016-09-15 15:52:15 +02:00
b622554b42 ajout clef mbp pour root (car radx n'est toujours pas en route) 2016-09-15 12:08:25 +02:00
332f40265d tout le monde peut exécuter mtr sans sudo 2016-09-10 15:27:35 +02:00
Yves Dubromelle
781973228f parce-que je m'ennuie à l'aéroport :) 2016-09-04 10:21:36 +02:00
Yves Dubromelle
65e1c6ff0e utilisation de slock sans sudo -> wrapper setuid 2016-08-27 19:39:13 +02:00
b42c8e3080 tout le monde peut faire 'sudo slock' 2016-08-27 18:11:11 +02:00
adaa4eeb61 ajout de la date après un full-auto 2016-08-26 23:48:27 +02:00
56d2c04cd6 app-dev: commentaires + outils git supplémentaire 2016-08-24 12:48:59 +02:00
ebe63ea5e0 organisation fichier 2016-08-24 12:47:23 +02:00
ea69ceba37 ajout de paquets : duff & odpdown 2016-08-24 12:31:07 +02:00
20 changed files with 112 additions and 38 deletions

View File

@@ -15,6 +15,7 @@ clean-log:
journalctl --vacuum-size=1G
full-auto: submodules-update upgrade clean optimise
@date
optimise:
nix-store --optimise
@@ -36,7 +37,7 @@ push: submodules-push
submodules-update:
#git submodule update --remote
git submodule foreach git co master
#git submodule foreach git co master
git submodule foreach git ff
submodules-push:

11
README
View File

@@ -1,11 +0,0 @@
# nixos-template-base
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
* https://nixos.org/wiki/How_to_install_NixOS_from_Linux#Installing_through_a_chroot
* https://github.com/NixOS/nixpkgs/issues/13305

41
README.md Normal file
View File

@@ -0,0 +1,41 @@
# nixos-template-base
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
* https://nixos.org/wiki/How_to_install_NixOS_from_Linux#Installing_through_a_chroot
* https://github.com/NixOS/nixpkgs/issues/13305
# Notes pour l'upgrade de 16.03 vers 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```
* activer x11 dans le configuration.nix
~~~
services.xserver.enable = true;
~~~
* remplacer le bootloader si gummiboot était utilisé
~~~
boot.loader.gummiboot.enable = true;
~~~
devient
~~~
boot.loader.systemd-boot.enable = true;
~~~
Pour résoudre les soucis d'upgrade, il est conseillé :
* de désactiver tous les imports (sauf `hardware.nix`)
* d'ajouter `.../localisation.nix` dans les imports sous peine d'être en clavier US
* d'ajouter ```nixpkgs.config.allowUnfree = true;```
* d'ajouter `vim` aux paquets
* de réactiver petit à petit les lignes désactivées

View File

@@ -16,7 +16,7 @@ mkIf cfg.nix-serve-client {
(mkIf (profiles.isDubronetwork && (! computers.isPedro) && (! computers.isRollo)) "http://nix-cache.dubronetwork.fr:5001")
(mkIf profiles.isPrunetwork "https://cache.nixos.org/")
(mkIf (profiles.isPrunetwork && !profiles.isServer) "http://192.168.1.20:5000")
(mkIf (profiles.isPrunetwork && !profiles.isServer) "http://nix-cache.dubronetwork.fr:5001")
];
extraOptions = ''
connect-timeout = 5

View File

@@ -20,6 +20,7 @@ in {
users.extraUsers.root = {
openssh.authorizedKeys.keys = [
mbpJPierre03
radxJPierre03
radxRoot
phenomTaeradan

View File

@@ -181,6 +181,7 @@ in
};
r6d.config-generator = {
print = true;
virtualbox = true;
};
})
@@ -251,6 +252,8 @@ in
r6d.config-generator = {
nix-serve-server = true;
laptop = true;
edition-photo = true;
};
})
(mkIf comp.isRollo {

View File

@@ -1,10 +1,10 @@
{ config, pkgs, ... }:
{ config, lib, pkgs, ... }:
let
cfg = config.r6d.config-generator;
computers = config.r6d.computers;
profiles = config.r6d.profiles;
mkIf = pkgs.lib.mkIf;
mkIf = lib.mkIf;
in
{

View File

@@ -38,7 +38,9 @@ mkIf true {
## Exploitation FS
inotify-tools # être notifié lorsque le contenu d'un répertoire change
duff # outil de recherche de fichiers en doublons
rdfind # recherche de fichiers doublons pour remplacement par hard/soft link
(mkIf profiles.isDesktop
## Gestion de FS
gparted # Gestion graphique de partitions
@@ -46,6 +48,5 @@ mkIf true {
(mkIf profiles.isDesktop
unetbootin # création de clefs USB bootables
)
#
];
}

View File

@@ -35,8 +35,9 @@ mkIf profiles.isDesktop {
gnuplot # générateur de graphes à partir de données numériques
graphviz # dot, neato : traçage de graphes (carré, rond)
jekyll # générateur statique de site web
odpdown # conversion md -> presentation ODP : https://github.com/thorstenb/odpdown
pandoc
texLiveFull # distribution LaTeX
texlive.combined.scheme-full # distribution LaTeX
#texLive # distribution LaTeX de base
#texLiveBeamer # paquets et extensions pour Beamer
#texLiveModerncv # paquets pour la classe Modern CV

View File

@@ -25,7 +25,7 @@ environment.systemPackages = with pkgs; [
## Mail & Discussion (texte, audio)
clawsMail
hexchat
kde5.quasselClient
quasselClient
mumble
mutt
pidgin

View File

@@ -12,34 +12,37 @@ mkIf cfg.developpement {
# Paquets
environment.systemPackages = with pkgs; [
# Base de données
pgadmin
sqlitebrowser
pgadmin # interface d'administration de postgres
sqlitebrowser # interface d'administration de sqlite
# Développement
cloc
idea.idea-community
gcc # pour les appels depuis les scripts
idea.idea-community # IntelliJ IDEA
gcc # pour les appels depuis les scripts
# Documentation
zeal
zeal # consulter la documentation hors ligne
## Gestion des sources
# git # déjà présent dans "base"
git-cola
# git # déjà présent dans "base"
# gitg # interface pour utiliser git (historique, commit)
gitstats # génère un site web statique avec des statistiques
gitAndTools.gitFull # pour gitk
git-cola # interface pour utiliser git (historique, commit)
mercurial
subversion
## Haskell
ghc
ghc # pour les appels depuis les scripts
stack
## Rust
cargo # récupération des dépendances + compilation projet rust
rustPlatform.rustc
cargo # récupération des dépendances + compilation projet rust
rustc # pour les appels depuis les scripts
## Visualisation & outils de diff
gource
meld
vbindiff # diff de fichier hexadecimaux avec vim
gource # visualisation en mouvement de l'historique git
meld # outil de comparaison graphique
vbindiff # diff de fichier hexadecimaux avec vim
];
}

View File

@@ -7,7 +7,8 @@ let
profiles = config.r6d.profiles;
in
mkIf profiles.isDesktop {
mkIf true {
#mkIf profiles.isDesktop {
# Paquets
environment.systemPackages = with pkgs; [
@@ -19,7 +20,7 @@ mkIf profiles.isDesktop {
## Diagnostic
arp-scan
wireshark
#wireshark
whois
];

View File

@@ -18,4 +18,5 @@ mkIf profiles.isDesktop {
slock # vérouiller l''écran. "cannot disable the out-of-memory killer for this process (make sure to suid or sgid slock)" --> en root
yubikey-personalization-gui # utilisation de la clef Yubikey
];
security.setuidPrograms = [ "slock" ];
}

View File

@@ -12,11 +12,17 @@ in
nix.buildCores = 0;
# The NixOS release to be compatible with for stateful data such as databases.
system.stateVersion = "16.03";
system.stateVersion = "16.09";
# copies the NixOS configuration file (usually /etc/nixos/configuration.nix) and links it from the resulting system (getting to /run/current-system/configuration.nix)
system.copySystemConfiguration = true;
# On autorise les paquets non-libres
nixpkgs.config.allowUnfree = true;
# Lancement de dbus pour les utilisateurs
services.dbus.socketActivated = true;
# Paquets
environment = {
systemPackages = with pkgs; [
@@ -36,6 +42,7 @@ in
p7zip # compression de fichier
parted # partitionnement de disque
pciutils
psmisc # fournis les utilitaires comme killall, fuser, pstree
python # python -- python -m SimpleHTTPServer 8000
python34Packages.glances # monitoring
pwgen # générateur de mot de passe
@@ -49,6 +56,7 @@ in
];
shellAliases = {
byobu = "byobu-tmux";
jacques-a-dit = "sudo";
tree = "tree -C";
tree1 = "tree -d -L 1";
tree2 = "tree -d -L 2";
@@ -58,6 +66,10 @@ in
};
etc.gitconfig.text = builtins.readFile ./gitconfig;
};
# programmes qui n'ont pas besoin de sudo pour fonctionner
security.setuidPrograms = [
"mtr"
];
programs.bash = {
enableCompletion = true;
promptInit = builtins.readFile ./bash-prompt.sh;

View File

@@ -21,6 +21,7 @@ mkIf cfg.laptop {
# Paquets
environment.systemPackages = with pkgs; [
networkmanagerapplet
networkmanagerapplet # gestionnaire réseau graphique + console (nm-applet + nmtui)
wirelesstools # fournis iwconfig
];
}

18
public/network.nix Normal file
View File

@@ -0,0 +1,18 @@
{ 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 {
# fix: Hostname -s renvoie "Unknown host" alors que hostname renvoie la bonne valeur
# Il s'avère que hostname vérifie la validité du FQDN et du reverse.
# Fixer ces paramètres dans les hosts permet de faire tomber en marche
networking.extraHosts = ''
127.0.0.1 ${config.networking.hostName}
'';
}

View File

@@ -12,6 +12,7 @@ in
# installées systématiquement
./environment.nix
./localisation.nix
./network.nix
#./network-ipv6.nix
./sudo.nix
./service-haveged.nix

View File

@@ -14,6 +14,7 @@ mkIf true {
services.openssh = {
enable = true;
# https://wiki.mozilla.org/Security/Guidelines/OpenSSH#Modern_.28OpenSSH_6.7.2B.29
# http://www.cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html
extraConfig = ''
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

View File

@@ -12,13 +12,11 @@ mkIf profiles.isDesktop {
# Services
# Enable the X11 windowing system.
services.xserver = {
enable = true;
#enable = true;
layout = "fr";
xkbOptions = "eurosign:e";
displayManager.lightdm.enable = true;
windowManager.awesome.enable = true;
startGnuPGAgent = true;
startOpenSSHAgent = false; # pas compatible avec l'agent GnuPG
inputClassSections = [''
Identifier "Marble Mouse"
MatchProduct "Logitech USB Trackball"

View File

@@ -13,5 +13,6 @@ mkIf true {
security.sudo.extraConfig = ''
%users ALL = NOPASSWD: ${pkgs.mtr}/bin/mtr
%users ALL = NOPASSWD: ${pkgs.slock}/bin/slock
'';
}