Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
64e7112093 | ||
|
|
8cca5d3ebb | ||
|
|
3be4747eb8 |
@@ -6,8 +6,67 @@ Repo public. `git pull` sans mot de passe.
|
||||
|
||||
Ne contient aucune donnée des utilisateurs nommés. Ça, c'est dans [Nixos_Users](../nixos_users), repo privé séparé.
|
||||
|
||||
## Index
|
||||
|
||||
- [Installer depuis un NixOS déjà installé](#installer-depuis-un-nixos-déjà-installé) -- appliquer cette config sans réinstaller, partitionnement existant préservé
|
||||
- [Installer un PC](#installer-un-pc) -- clé USB ou PXE, depuis zéro (reformate le disque)
|
||||
- [Installer le serveur PXE](#installer-le-serveur-pxe)
|
||||
- [Référence](#référence)
|
||||
- [Environnement de dev sous Windows (WSL + Nix)](#environnement-de-dev-sous-windows-wsl--nix)
|
||||
- [Travailler avec Git](#travailler-avec-git)
|
||||
|
||||
---
|
||||
|
||||
# Installer depuis un NixOS déjà installé
|
||||
|
||||
Pour appliquer cette config (flotte ou poste nommé) sur une machine où NixOS tourne déjà -- sans réinstaller, **sans toucher au partitionnement existant**. Utilise `nixos-existing` (flotte, ce repo) ou `<profil>-existing` (poste nommé, [Nixos_Users](../nixos_users)) : même profil logiciel que l'install normale, mais basé sur le `hardware-configuration.nix` réel de la machine plutôt que sur disko.
|
||||
|
||||
Pour repartir de zéro (reformater le disque) à la place : voir "Installer un PC" plus bas.
|
||||
|
||||
## Flotte
|
||||
|
||||
```bash
|
||||
git clone https://gitea.miniclic.net/Damien/Nixos_Fleet.git /etc/nixos-fleet
|
||||
cd /etc/nixos-fleet
|
||||
sudo nixos-rebuild switch --flake .#nixos-existing --impure
|
||||
```
|
||||
|
||||
`--impure` : nécessaire pour lire `/etc/nixos/hardware-configuration.nix`, hors du flake.
|
||||
|
||||
## Poste nommé (thomas/clara/jade/oreo/oreo-i3)
|
||||
|
||||
Repo privé -- voir "Token Gitea" dans [Nixos_Users](../nixos_users) pour en obtenir un.
|
||||
|
||||
```bash
|
||||
git clone https://<token>@gitea.miniclic.net/Damien/Nixos_Users.git /etc/nixos-users
|
||||
cd /etc/nixos-users
|
||||
sudo nixos-rebuild switch --flake .#oreo-existing --impure
|
||||
```
|
||||
|
||||
Remplacer `oreo-existing` par le profil concerné (`thomas-existing`, `clara-existing`, `jade-existing`, `oreo-i3-existing`).
|
||||
|
||||
Pour que les mises à jour automatiques continuent de fonctionner ensuite (repo privé), créer le netrc à la main -- normalement écrit par `install.sh`, absent ici puisqu'on ne passe pas par l'installeur :
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /etc/nix
|
||||
{
|
||||
echo "machine gitea.miniclic.net"
|
||||
echo "login <token>"
|
||||
echo "password x-oauth-basic"
|
||||
} | sudo tee /etc/nix/netrc
|
||||
sudo chmod 600 /etc/nix/netrc
|
||||
```
|
||||
|
||||
## Maintenance
|
||||
|
||||
Identique au reste du repo (voir "Mises à jour de la flotte" en Référence), avec `nixos-existing` (ou `<profil>-existing`) à la place de l'attribut normal :
|
||||
|
||||
```bash
|
||||
cd /etc/nixos-fleet # ou /etc/nixos-users
|
||||
sudo git pull
|
||||
sudo nixos-rebuild switch --flake .#nixos-existing --impure
|
||||
```
|
||||
|
||||
# Installer un paquet sans le mettre "en dur"
|
||||
|
||||
Pour tester un outil sans toucher à `configuration.nix`.
|
||||
@@ -44,6 +103,10 @@ Deux supports possibles, choisis-en un.
|
||||
|
||||
**PXE (serveur déjà monté)** : rien à préparer ici. Va à l'étape 1.
|
||||
|
||||
**Ce n'est pas l'ISO de nixos.org.** Celle-ci est construite depuis ce repo (`installer/iso.nix`) : paquets propres au parc (git, outils de partitionnement...), clavier/locale FR par défaut, et surtout `install.sh` qui se lance seul à l'ouverture de session -- l'ISO officielle démarre sur un shell nu, sans rien de tout ça, il faudrait tout faire à la main (partitionnement, `nixos-install`...).
|
||||
|
||||
Le `nix build` ci-dessous est **long** (10 à 30+ minutes) et n'affiche presque rien pendant la majeure partie du temps -- l'étape la plus lente (`mksquashfs`, compression de tout le store Nix pour l'ISO) ne montre aucune progression. Normal, pas figé : vérifier avec `top`/`htop` qu'un processus consomme du CPU avant de penser à interrompre.
|
||||
|
||||
**Clé USB, sur Linux :**
|
||||
|
||||
```bash
|
||||
@@ -272,13 +335,7 @@ Un reboot du serveur applique aussi ça correctement au démarrage suivant.
|
||||
|
||||
## Étape 8 — Tester sur 1 PC
|
||||
|
||||
Démarrer un seul PC en PXE.
|
||||
|
||||
Vérifier qu'il arrive sur l'écran de choix.
|
||||
|
||||
Si le parc a du BIOS et de l'UEFI, tester les deux.
|
||||
|
||||
Ne pas lancer 20 PC avant que cette étape fonctionne.
|
||||
Suivre "Installer un PC" (Network Boot au lieu de Boot from USB) sur une seule machine avant d'en lancer 20. Tester BIOS et UEFI séparément si le parc a les deux.
|
||||
|
||||
## Après l'installation
|
||||
|
||||
|
||||
@@ -19,6 +19,9 @@
|
||||
|
||||
outputs =
|
||||
{ self, nixpkgs, disko, home-manager, ... }:
|
||||
let
|
||||
repoUrl = "git+https://gitea.miniclic.net/Damien/Nixos_Fleet.git";
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
nixos = nixpkgs.lib.nixosSystem {
|
||||
@@ -27,6 +30,24 @@
|
||||
disko.nixosModules.disko
|
||||
home-manager.nixosModules.home-manager
|
||||
./hosts/nixos/configuration.nix
|
||||
./diskos/plain.nix
|
||||
{ system.autoUpgrade.flake = "${repoUrl}#nixos"; }
|
||||
];
|
||||
};
|
||||
|
||||
# Même profil logiciel que "nixos", mais sans disko : pour une
|
||||
# machine où NixOS est déjà installé (partitionnement existant,
|
||||
# quel qu'il soit, à ne pas toucher) -- utilise le
|
||||
# hardware-configuration.nix réel de cette machine à la place de
|
||||
# diskos/plain.nix, comme pxe-server. --impure obligatoire au
|
||||
# nixos-rebuild (lit un chemin hors du flake).
|
||||
nixos-existing = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
home-manager.nixosModules.home-manager
|
||||
./hosts/nixos/configuration.nix
|
||||
/etc/nixos/hardware-configuration.nix
|
||||
{ system.autoUpgrade.flake = "${repoUrl}#nixos-existing"; }
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
@@ -168,11 +168,16 @@ in
|
||||
# (déjà la valeur par défaut de ce module -- explicité ici) : si la
|
||||
# machine est éteinte au moment prévu, la maj se lance dès le
|
||||
# prochain démarrage plutôt que d'attendre la semaine suivante.
|
||||
# `flake` n'est PAS fixé ici : il dépend de l'attribut réellement
|
||||
# utilisé pour cette machine (nixos vs nixos-existing, disko ou pas)
|
||||
# -- injecté par flake.nix, comme dans nixos_users. Le fixer ici
|
||||
# ferait basculer une machine "nixos-existing" vers l'attribut
|
||||
# "nixos" (disko) à son prochain auto-upgrade, avec un layout disque
|
||||
# potentiellement incompatible avec l'existant.
|
||||
system.autoUpgrade = {
|
||||
enable = true;
|
||||
persistent = true;
|
||||
dates = "weekly";
|
||||
flake = "git+https://gitea.miniclic.net/Damien/Nixos_Fleet.git#nixos";
|
||||
};
|
||||
|
||||
# Compte admin de la flotte : root, mot de passe "nixos" STABLE (pas
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
# Profil générique "nixos" : poste non-nominatif de la flotte.
|
||||
# Le module disque (diskos/plain.nix pour une install neuve, ou le
|
||||
# hardware-configuration.nix réel d'une machine déjà installée) est
|
||||
# injecté par flake.nix, pas ici -- ce fichier ne connaît pas le
|
||||
# layout disque, comme dans nixos_users.
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../common
|
||||
../../diskos/plain.nix
|
||||
];
|
||||
|
||||
# Compte de session non-nominatif, mot de passe "nixos" stable, sans
|
||||
|
||||
Reference in New Issue
Block a user