mirror of https://gitlab.crans.org/nounous/nixos
Ajout README.md modules
parent
b6625638c3
commit
9422c2fd58
|
@ -71,7 +71,7 @@ Le fichier [`.sops.yaml`](.sops.yaml) contient la description des secrets et des
|
|||
|
||||
### Machines
|
||||
|
||||
Le dossier [`hosts`](hosts) contient la configuration unique à chaque machine. On y retrouve en particulier le bootloader, le déchiffrement des secrets nécessaires pour la machine et la configuration réseau. En effet, il est utile de rappeler qu'aucune machine du Crans (hors VM adhérent⋅e⋅s) n'utilise du DHCP : il est donc nécessaire d'écrire à la main toutes les interfaces dont elles disposent. Pour plus de détails sur les interfaces réseaux, vous pouvez vous réferer à la [documentation des VLAN](https://gitlab.crans.org/nounous/documentation/-/blob/master/infrastructure/plan.md), et dans [`hosts/README.md`](hosts/README.md) de manière plus générale.
|
||||
Le dossier [`hosts`](hosts) contient la configuration unique à chaque machine. On y retrouve en particulier le bootloader, le déchiffrement des secrets nécessaires pour la machine et la configuration réseau. En effet, il est utile de rappeler qu'aucune machine du Crans (hors VM adhérent⋅e⋅s) n'utilise du DHCP : il est donc nécessaire d'écrire à la main toutes les interfaces dont elles disposent. Pour plus de détails sur les interfaces réseaux, vous pouvez vous réferer à la [documentation des VLAN](https://gitlab.crans.org/nounous/documentation/-/blob/master/infrastructure/plan.md), et à [`hosts/README.md`](hosts/README.md) de manière plus générale.
|
||||
|
||||
### Modules
|
||||
|
||||
|
|
|
@ -1 +1,15 @@
|
|||
# Modules
|
||||
|
||||
Ce dossier contient tous les modules utilisés par les configurations des différentes machines.
|
||||
|
||||
## `default.nix`
|
||||
|
||||
Le fichier [`default.nix`](default.nix) a deux utilités : il importe par défaut toute la configuration du Crans (voir [la section Crans](#crans)), et importe deux fonctionnalités indispensables pour notre utilisation de nix : les flakes (voir [le `README.md` à la racine du dépôt](../README.md#flakes)) et la commande `nix`. Comprendre en détails cette partie n'est pas nécessaire, il faut juste comprendre qu'il est important de décrire ça.
|
||||
|
||||
## Crans
|
||||
|
||||
Le dossier [`crans`](crans) contient tous les services/programmes communs à toutes les machines utilisant la configuration usuelle du Crans (les utilisateurices, les `home_nounou`, ...). Vous pouvez voir plus de détails dans [`crans/README.md`](crans/README.md).
|
||||
|
||||
## Services
|
||||
|
||||
Le dossier [`services`](services) contient tous les services/programmes utilisés par un nombre restreint de machines. On peut y déclarer deux types de configurations : les configurations directement inscrites car seront toujours utilisées de la même façon, et les configurations mettant en place un système d'options et de configuration générée pour avoir plus de granularités. Cette seconde utilisation est plus complexe à mettre en place et nécessite une meilleure compréhension de `nix`.
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
# Modules Crans
|
||||
|
||||
Ce dossier contient tous les modules commun à la majorité des machines virtuelles du Crans. On y retrouve par exemple les utilisateurices, les `home_nounou`, etc.
|
||||
|
||||
## `default.nix`
|
||||
|
||||
Le fichier [`default.nix`](default.nix), comme tous les autres du même nom, importe tous les autres fichiers du dossier. De plus, il déclare des programmes utiles à avoir en permanence, tels que `ssh`, `git`, `nvim`, ...
|
||||
|
||||
## `home.nix`
|
||||
|
||||
Le fichier [`home.nix`](home.nix) monte les `home_nounou` par NFS à partir de `172.16.10.1` (à savoir `tealc`).
|
||||
|
||||
## `locale.nix`
|
||||
|
||||
Le fichier [`locale.nix`](locale.nix) déclare simplement les locales à utiliser.
|
||||
|
||||
## `networking.nix`
|
||||
|
||||
Le fichier [`networking.nix`](networking.nix) a moins d'utilité que ce à quoi on pourrait s'attendre : comme chaque machine possède sa propre configuration réseau, les seules choses communes à déclarer sont : la non-utilisation de DHCP, la non-utilisation d'un pare-feu par défault ainsi que l'ajout d'un serveur DNS.
|
||||
|
||||
## `ntp.nix`
|
||||
|
||||
Le fichier [`ntp.nix`](ntp.nix) active simplement le NTP (Network Time Protocol) en ajoutant le serveur `ntp.adm.crans.org` comme serveur de temps.
|
||||
|
||||
## `sops.nix`
|
||||
|
||||
Le fichier [`sops.nix`](sops.nix) déclare l'utilisation de `sops` dans la configuration (voir [ce `README.md`](../../secrets/README.md) pour plus de détails) et importe la clef publique SSH de la machine pour pouvoir l'utiliser dans la gestion des secrets.
|
||||
|
||||
## `users.nix`
|
||||
|
||||
Le fichier [`users.nix`](users.nix) configure les `_users` à partir du LDAP d'administration, et configure les droits pour que les `_nounou` aient les accès `sudo`. Il configure également l'utilisateur `root` en lui donnant son mot de passe haché à travers un fichier `sops`.
|
|
@ -18,8 +18,9 @@
|
|||
};
|
||||
|
||||
# Enable some utility programs.
|
||||
programs.neovim.enable = true;
|
||||
programs.git.enable = true;
|
||||
programs.neovim.enable = true;
|
||||
programs.tmux.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
shelldap
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{ ... }:
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
# Les interfaces ne sont pas déclarées ici : elles sont propres à chaque VM.
|
||||
networking = {
|
||||
useDHCP = false;
|
||||
firewall.enable = false;
|
||||
firewall.enable = lib.mkDefault false;
|
||||
nameservers = [ "172.16.10.128" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
{ sops-nix, ... }: {
|
||||
{ sops-nix, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
sops-nix.nixosModules.sops
|
||||
];
|
||||
|
|
Loading…
Reference in New Issue