Lesson 0007 · groupdir-infra

Deploy-Pfad

Colmena ohne Pipeline; Disko und nixos-anywhere nur im Überblick.

Einleitung

Nach Lesson 0006 kannst du Modul-Änderungen lokal bauen. Deploy heißt: die gebaute Konfiguration auf den Host bringen. In groupdir-infra macht das Colmena, gesteuert über hive.nix.

Disko und nixos-anywhere brauchst du nur für Partitionierung bzw. Erstinstallation. Hier reichen Rollen und ein Befehl. Live-Deploy gegen echte Hosts ist fürs Selbststudium optional; die Befehle und Dateien sollst du zuordnen können.

deployment.nix, hive.nix und flake.nix

Das Host-Inventar (welcher Host, Zieladresse, User, Rollen-Tags) steht an einer Stelle: deployment.nix. Auszug:

lab-gateway = {
  targetHost = "192.168.200.119";
  targetUser = "deploy";
  tags = [ "lab" ];
};

hive.nix und flake.nix lesen dieselbe deployment.nix und leiten daraus per mapAttrs ihre Sicht ab: hive.nix baut pro Host einen Colmena-Node (deployment-Block + Import von nixos/hosts/<name>/configuration.nix), flake.nix baut daraus nixosConfigurations.<name>. Einen Host hinzufügen heißt also: neuer Eintrag in deployment.nix plus die passende nixos/hosts/<name>/configuration.nix — nicht mehr zwei getrennte Listen pflegen.

Primärquelle: Colmena Manual. Im Repo: deployment.nix, hive.nix, flake.nix und README („Deploy“).

Native Befehle (ohne Pipeline)

# in nix develop, Repo-Root
colmena build                          # lokal bauen, nichts deployen
colmena apply                          # alle Hive-Hosts
colmena apply --on lab-gateway         # nur ein Host
colmena apply --on vps

just build / just apply / just apply-host … sind nur Shortcuts auf dieselben Colmena-Aufrufe (analog zu Lesson 0004 und just/tofu).

Selbststudium: colmena build üben. apply braucht SSH-Zugang und ändert Produktion. Kenn den Befehl und lies hive.nix; Apply nur mit Absicht.

Disko (Oberfläche)

Disko beschreibt Festplatten layout deklarativ. Pro Host liegt nixos/hosts/…/disko.nix, importiert in der Host-Config. Du änderst Disko selten im Alltag; relevant bei neuem Host oder Install.

nixos-anywhere (Oberfläche)

nixos-anywhere installiert NixOS einmalig remote (z. B. frische VM). Danach übernimmt Colmena. Ablauf und Voraussetzungen: docs/install.md. Beispiel aus dem justfile (destruktiv, nur Erst-/Migrationspfad):

nixos-anywhere --flake .#vps --extra-files … root@vpn.groupdir.de

Wer macht was?

Lesen am Repo

  1. deployment.nix: targetHost / targetUser für vps und lab-gateway
  2. docs/install.md: Abschnitt „First install with NixOS-anywhere“ überfliegen
  3. Optional: colmena build in der Dev-Shell

Üben

Retrieval

Wozu dient hive.nix?

Was bewirkt colmena apply (im Gegensatz zu build)?

Wann sind Disko und nixos-anywhere im Fokus?

Primärquelle

Colmena Manual, docs/install.md, hive.nix.

Kompakt: Referenz: Deploy-Pfad. Zusammenspiel mit CI, State und autoUpgrade: Lesson 0008.