Einleitung
Alle weiteren Lessons setzen voraus, dass auf deinem Rechner der
Paketmanager Nix läuft und
Flakes eingeschaltet sind. Dann kannst du im Repo
groupdir-infra eine Dev-Shell öffnen
(nix develop) und später Konfigurationen lokal bauen
(nix build). Terraform (tofu),
just und Colmena kommen über diese Shell, nicht als
Systempakete, die du manuell suchst.
Heute: Installation und die zwei Befehle, die du ständig brauchst. Noch keine DNS- oder Terraform-Details.
1. Nix installieren
Offizielle Anleitung: nixos.org/download bzw. nix.dev/install-nix. Auf Linux (systemd, empfohlen: Multi-User):
curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install \
| sh -s -- --daemon
Danach neues Terminal öffnen und prüfen:
nix --version
Unter Arch kannst du Nix alternativ über die Distribution
installieren (siehe nix.dev). Wichtig ist nur: der Befehl
nix ist verfügbar.
2. Flakes und nix-command aktivieren
groupdir-infra ist ein Flake-Projekt
(flake.nix + flake.lock). Die moderne CLI
(nix develop, nix build) braucht die
Features nix-command und flakes. Siehe
nix.dev: Flakes.
Dauerhaft für deinen User (Datei anlegen oder ergänzen):
mkdir -p ~/.config/nix
echo 'experimental-features = nix-command flakes' >> ~/.config/nix/nix.conf
Einmalig pro Befehl geht auch:
nix --experimental-features 'nix-command flakes' ….
Für den Kurs lohnt die dauerhafte Einstellung.
Auf NixOS setzt man stattdessen in der Konfiguration:
nix.settings.experimental-features = [ "nix-command" "flakes" ];
3. Dev-Shell: nix develop
Im geklonten Repo:
cd path/to/groupdir-infra
nix develop
Das wertet devShells.default aus der
flake.nix aus und legt u. a.
tofu, just, colmena,
nixfmt in den PATH. Du bleibst in einer Subshell;
mit exit verlässt du sie wieder.
Kontrolle: tofu version, just --list,
colmena --help sollten antworten.
4. Später: nix build
nix build baut ein Flake-Output und legt (standardmäßig)
einen Symlink ./result an. In späteren Lessons brauchst
du das, um NixOS-Konfigurationen lokal zu prüfen, ohne zu deployen.
Beispiele (Syntax merken, Details kommen bei Modul-Optionen):
# generisches Beispiel (Hallo-Welt aus nixpkgs)
nix build nixpkgs#hello
# typisch im Repo: eine nixosConfiguration bauen
nix build .#nixosConfigurations.lab-gateway.config.system.build.toplevel
Wenn der Build durchläuft, ist die Config syntaktisch und auswertbar in Ordnung. Das ersetzt weder Terraform-Plan noch Colmena-Apply; es ist der lokale Nix-Check.
Checkliste
nix --versionzeigt eine Version- Flakes aktiv (kein Fehler „experimental feature ‚flakes‘“)
-
In
groupdir-infra:nix developstartet,tofuist im PATH -
Optional:
nix build nixpkgs#helloerzeugtresult/
Üben
Retrieval
In welcher Reihenfolge richtest du die Basis ein?
Was macht nix develop in diesem Repo?
Wozu dient nix build im Selbststudium hier?
Primärquelle
Install: Nix download. Flakes: nix.dev Flakes (Abschnitt zu experimental features).
Im Repo: flake.nix (devShells.default) und
README („First use“:
nix develop).
Kompakt: Referenz: Nix-Tooling.