Persiste la config sur /etc/nixos à l'install, firmware wifi, wallpaper par défaut
- install.sh: copie le repo (clone substitué) vers /mnt/etc/nixos après nixos-install, sinon la machine installée n'a aucun fichier à éditer - base.nix: hardware.enableRedistributableFirmware pour les cartes wifi nécessitant un firmware non-libre - desktop.nix: fond d'écran NixOS par défaut via dconf (n'existait pas) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# Socle commun à toutes les machines de la flotte (repo public).
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
# Toutes les machines de la flotte portent le même nom : pas
|
||||
@@ -9,6 +9,14 @@
|
||||
networking.hostName = "Nixos_Fleet";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Sans ça, les firmwares non-libres (wifi/Bluetooth Broadcom, Realtek,
|
||||
# Intel...) ne sont pas inclus dans le système. Sur un parc de PC
|
||||
# hétérogène et inconnu à l'avance, une partie aura besoin de ces
|
||||
# firmwares pour que la carte wifi soit seulement détectée (option
|
||||
# documentée : nixos.wiki/wiki/NixOS_Installation_Guide, section
|
||||
# firmware). mkDefault : un profil peut désactiver au cas par cas.
|
||||
hardware.enableRedistributableFirmware = lib.mkDefault true;
|
||||
|
||||
time.timeZone = "Europe/Paris";
|
||||
i18n.defaultLocale = "fr_FR.UTF-8";
|
||||
i18n.extraLocaleSettings = {
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
{
|
||||
services.xserver.enable = true;
|
||||
services.xserver.displayManager.lightdm.enable = true;
|
||||
services.xserver.displayManager.lightdm.background = "/etc/nixos/hosts/common/wallpaper/Nix/13977413.png";
|
||||
services.xserver.desktopManager.cinnamon.enable = true;
|
||||
services.accounts-daemon.enable = true;
|
||||
|
||||
@@ -14,6 +15,17 @@
|
||||
warpinator
|
||||
];
|
||||
|
||||
# Fond d'écran par défaut (juste le logo NixOS, pas la galerie perso de
|
||||
# nixos_cinnamon -- repo public, on n'y met que ce qui est nécessaire).
|
||||
# Ce chemin (/etc/nixos) suppose la config installée là -- voir
|
||||
# nixos_fleet/installer/install.sh (do_install copie le clone sur le
|
||||
# disque cible après nixos-install).
|
||||
environment.etc."dconf/db/local.d/00-background".text = ''
|
||||
[org/cinnamon/desktop/background]
|
||||
picture-uri='file:///etc/nixos/hosts/common/wallpaper/Nix/13977413.png'
|
||||
'';
|
||||
system.activationScripts.dconfUpdate.text = "${pkgs.dconf}/bin/dconf update";
|
||||
|
||||
# Réglages de confidentialité génériques (pas de SearXNG/DNS personnels
|
||||
# comme sur le poste perso — cette config est destinée à être publique).
|
||||
programs.firefox = {
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 146 KiB |
+32
-1
@@ -92,6 +92,32 @@ do_install() {
|
||||
|
||||
swapoff /mnt/.install-swapfile
|
||||
rm -f /mnt/.install-swapfile
|
||||
|
||||
# Sans cette étape, la machine installée n'a AUCUNE config sur son
|
||||
# disque : le clone ci-dessus vit dans /tmp de l'environnement live, en
|
||||
# RAM, effacé au reboot. La convergence auto (system.autoUpgrade, voir
|
||||
# hosts/common/base.nix) continue de fonctionner sans ça (elle pointe
|
||||
# sur l'URL distante), mais un technicien qui arrive sur la machine
|
||||
# après coup n'a alors ni /etc/nixos, ni moyen d'ajouter/enlever un
|
||||
# paquet à la main. On installe donc le même clone (déjà substitué avec
|
||||
# le vrai disque) à l'emplacement standard NixOS, en conservant .git
|
||||
# pour que `git pull`/`git log` marchent dessus normalement ensuite.
|
||||
echo "Installation de la configuration dans /mnt/etc/nixos..."
|
||||
rm -rf /mnt/etc/nixos
|
||||
mkdir -p /mnt/etc
|
||||
cp -a "$repo_dir" /mnt/etc/nixos
|
||||
|
||||
# Le disque cible a été substitué localement (sed plus haut) : ce fichier
|
||||
# diffère donc de ce qui est sur git (placeholder). On le committe en
|
||||
# local (jamais poussé) pour que `git status` reste propre sur la
|
||||
# machine installée -- sinon chaque `git pull` ultérieur affiche un
|
||||
# fichier modifié, source de confusion pour un technicien.
|
||||
git -C /mnt/etc/nixos \
|
||||
-c user.name="Installeur Nixos_Fleet" \
|
||||
-c user.email="installeur@nixos-fleet.local" \
|
||||
commit -aqm "Substitution locale du disque cible ($DEVICE)"
|
||||
|
||||
INSTALLED_ATTR="$attr"
|
||||
}
|
||||
|
||||
echo "=== Installeur Nixos_Fleet ==="
|
||||
@@ -190,6 +216,11 @@ case "$CHOICE" in
|
||||
esac
|
||||
|
||||
echo
|
||||
echo "Installation terminée. Redémarrage dans 10s (Ctrl-C pour annuler et inspecter /mnt)..."
|
||||
echo "Installation terminée."
|
||||
echo "Config installée dans /etc/nixos (attribut : ${INSTALLED_ATTR})."
|
||||
echo "Pour ajouter/enlever un paquet après le premier démarrage :"
|
||||
echo " 1. éditer les fichiers dans /etc/nixos"
|
||||
echo " 2. nixos-rebuild switch --flake /etc/nixos#${INSTALLED_ATTR}"
|
||||
echo "Redémarrage dans 10s (Ctrl-C pour annuler et inspecter /mnt)..."
|
||||
sleep 10
|
||||
reboot
|
||||
|
||||
Reference in New Issue
Block a user