Ajout README.md modules

cephiroth
pigeonmoelleux 2024-03-07 14:49:13 +01:00
parent b6625638c3
commit 9422c2fd58
No known key found for this signature in database
GPG Key ID: B3BE02E379E6E8E2
7 changed files with 55 additions and 7 deletions

View File

@ -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

View File

@ -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`.

View File

@ -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`.

View File

@ -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

View File

@ -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" ];
};
}

View File

@ -1,4 +1,6 @@
{ sops-nix, ... }: {
{ sops-nix, ... }:
{
imports = [
sops-nix.nixosModules.sops
];