|
|
|
@@ -6,8 +6,65 @@ 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é
|
|
|
|
|
|
|
|
|
|
Repo privé -- voir "Token Gitea" dans [Nixos_Users](../nixos_users) pour en obtenir un, et la liste des profils disponibles (pas listée ici, repo public).
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
git clone https://<token>@gitea.miniclic.net/Damien/Nixos_Users.git /etc/nixos-users
|
|
|
|
|
cd /etc/nixos-users
|
|
|
|
|
sudo nixos-rebuild switch --flake .#<profil>-existing --impure
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
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 +101,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
|
|
|
|
@@ -102,7 +163,7 @@ Il y a deux cas. Choisis-en un seul.
|
|
|
|
|
|
|
|
|
|
PC normal → va à l'étape 4A.
|
|
|
|
|
|
|
|
|
|
PC pour thomas, clara, jade, oreo ou oreo-i3 → va à l'étape 4B.
|
|
|
|
|
PC pour une personne (profil nommé) → va à l'étape 4B.
|
|
|
|
|
|
|
|
|
|
## Étape 4A — PC normal
|
|
|
|
|
|
|
|
|
@@ -122,7 +183,7 @@ Tape : `2`
|
|
|
|
|
|
|
|
|
|
Appuie sur Entrée.
|
|
|
|
|
|
|
|
|
|
Tape le prénom (thomas, clara, jade, oreo ou oreo-i3).
|
|
|
|
|
Tape le prénom du profil (liste donnée à part, pas dans ce guide public).
|
|
|
|
|
|
|
|
|
|
Appuie sur Entrée.
|
|
|
|
|
|
|
|
|
@@ -272,13 +333,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
|
|
|
|
|
|
|
|
|
@@ -413,7 +468,7 @@ Pour réactiver la même chose sur `nixos`, reprendre ce bloc tel quel dans `hos
|
|
|
|
|
|
|
|
|
|
Une machine de la flotte pull uniquement ce repo.
|
|
|
|
|
|
|
|
|
|
Les comptes thomas/clara/jade/oreo vivent dans un autre repo, privé.
|
|
|
|
|
Les comptes nominatifs vivent dans un autre repo, privé.
|
|
|
|
|
|
|
|
|
|
La flotte ne voit jamais ce second repo.
|
|
|
|
|
|
|
|
|
@@ -423,7 +478,7 @@ Marche sans le serveur PXE. Utile pour tester avant de monter le PXE, ou en seco
|
|
|
|
|
|
|
|
|
|
NixOS permet nativement de fabriquer une image d'installation sur mesure : un ISO avec nos propres paquets et notre propre script (`install.sh`) qui se lance seul au démarrage. C'est une fonctionnalité standard de NixOS, pas un bricolage — `installer/iso.nix` dans ce repo est la définition de cette image.
|
|
|
|
|
|
|
|
|
|
C'est le même ISO pour la flotte et les postes nommés — pas deux images différentes, **pas de commande de build spécifique à jade/oreo/oreo-i3**. Le choix se fait à l'écran au démarrage, une fois la clé branchée sur le PC cible (voir étapes 4/4B).
|
|
|
|
|
C'est le même ISO pour la flotte et les postes nommés — pas deux images différentes, **pas de commande de build spécifique par profil nommé**. Le choix se fait à l'écran au démarrage, une fois la clé branchée sur le PC cible (voir étapes 4/4B).
|
|
|
|
|
|
|
|
|
|
Depuis Windows : mêmes commandes, dans WSL -- voir "Étape 0", section Windows.
|
|
|
|
|
|
|
|
|
|