diff --git a/deploy/INBETRIEBNAHME.md b/deploy/INBETRIEBNAHME.md index 2f635e2..bb6a04c 100644 --- a/deploy/INBETRIEBNAHME.md +++ b/deploy/INBETRIEBNAHME.md @@ -39,7 +39,7 @@ JSON-Dateien. Ohne diesen Schritt läuft Modul 4 durch und löst nichts auf, **ohne zu scheitern** — der teuerste stille Fehler der ganzen Einrichtung. ```sh -podman run --rm --network=pasta \ +podman run --rm --network=bebop-net \ --env-file ~/.config/wurzelwerk/database.env \ localhost/wurzelwerk-p2 lexikon.py --laden ``` @@ -48,10 +48,10 @@ Erwartet: `person 5631`, `organisation 2319`, `partei 682`, `staat 195`, `amt 29`, `amtsinhaber 418`. Die `Ueberschneidung:`-Zeilen sind die Betriebssicht auf Doppelspitzen und Bremer Bürgermeister, kein Fehler. -Läuft der Container hier in einen Verbindungsfehler, zeigt `DATABASE_URL` -vermutlich auf `127.0.0.1`. Aus dem Container heraus ist das der Container -selbst; nötig ist `host.containers.internal`. Dann in `p2.env` überschreiben -(Schritt 4), statt `database.env` anzufassen — die gehört Phase 1 mit. +Das Netz ist nicht schmückend: `DATABASE_URL` zeigt auf den Rechnernamen +`postgres`, und den löst nur Podmans DNS innerhalb von `bebop-net` auf. +Ohne `--network=bebop-net` scheitert die Namensauflösung, nicht die +Anmeldung — die Fehlermeldung nennt dann den Namen, nicht das Passwort. ## 3. Modell-Volume anlegen und einmal füllen @@ -64,7 +64,7 @@ nicht aus dem Timer: der Erstbestand über den gesamten Korpus dauert etwa 17 Minuten je 5000 Items, und `TimeoutStartSec=1800` ist dafür knapp. ```sh -podman run --rm --network=pasta --memory=8g --shm-size=1g \ +podman run --rm --network=bebop-net --memory=8g --shm-size=1g \ --volume wurzelwerk-modelle:/cache:U \ --env-file ~/.config/wurzelwerk/database.env \ --env OMP_NUM_THREADS=4 --env HF_HUB_OFFLINE=0 \ diff --git a/deploy/p2.env.beispiel b/deploy/p2.env.beispiel index ba2a2f4..7867915 100644 --- a/deploy/p2.env.beispiel +++ b/deploy/p2.env.beispiel @@ -1,12 +1,17 @@ # Nach ~/.config/wurzelwerk/p2.env kopieren und ausfuellen. chmod 600. # Enthaelt Zugangsdaten und gehoert nicht ins Repo. +# Das Podman-Netz, in dem der Lauf haengt. Auf Prod bebop-net: dort loest +# Podmans DNS den Rechnernamen "postgres" auf, den DATABASE_URL benutzt. +# Ohne eigenes Netz ist pasta richtig, dann aber muss in DATABASE_URL +# host.containers.internal stehen. +P2_NETZ=bebop-net + # Die Datenbankverbindung steht auf Prod bereits in # ~/.config/wurzelwerk/database.env; die Unit liest beide Dateien. Hier nur -# setzen, wenn Phase 2 eine andere braucht - etwa weil database.env auf -# 127.0.0.1 zeigt, was aus dem Container heraus ins Leere laeuft. +# setzen, wenn Phase 2 eine andere braucht. # -# DATABASE_URL=postgresql://wurzelwerk:PASSWORT@host.containers.internal:5432/wurzelwerk +# DATABASE_URL=postgresql://wurzelwerk:PASSWORT@postgres:5432/wurzelwerk # Threadzahl. Geht in die coder_version ein - eine Aenderung erzeugt einen # neuen Vektorbestand. Prod hat 16 Threads, 4 laeuft ueberall. diff --git a/deploy/wurzelwerk-p2.service b/deploy/wurzelwerk-p2.service index ea8b7a8..5e03bd4 100644 --- a/deploy/wurzelwerk-p2.service +++ b/deploy/wurzelwerk-p2.service @@ -21,14 +21,21 @@ Type=oneshot # nur Phase 2 angeht; wird dort DATABASE_URL noch einmal gesetzt, gewinnt sie, # weil systemd spaetere Dateien spaeter liest. # -# Beide muessen aus dem Container heraus aufloesbar sein: der Rechnername in -# DATABASE_URL darf nicht 127.0.0.1 sein, sondern host.containers.internal. +# Der Rechnername in DATABASE_URL muss aus dem Container heraus aufloesbar +# sein. Auf Prod steht dort "postgres" - der Containername, den Podmans DNS +# im Netz bebop-net aufloest. Auf einer Maschine ohne eigenes Netz waere es +# host.containers.internal; 127.0.0.1 ist es in keinem der beiden Faelle, +# das zeigt aus dem Container auf den Container. +# +# Vorgabe fuer das Netz, von den Umgebungsdateien ueberschreibbar - sie +# werden nach Environment= gelesen und gewinnen deshalb. +Environment=P2_NETZ=pasta EnvironmentFile=%h/.config/wurzelwerk/database.env EnvironmentFile=-%h/.config/wurzelwerk/p2.env TimeoutStartSec=1800 ExecStart=/usr/bin/podman run --rm \ --name wurzelwerk-p2-lauf \ - --network=pasta \ + --network=${P2_NETZ} \ --memory=8g --shm-size=1g \ --volume wurzelwerk-modelle:/cache:U \ --env DATABASE_URL \