updated docs for an other activation step
This commit is contained in:
parent
6037b55091
commit
da37a2dce3
1 changed files with 72 additions and 19 deletions
|
|
@ -16,8 +16,10 @@ Bei der Erstinstallation gibt es ein Henne-Ei-Problem:
|
|||
```
|
||||
1. Services deaktivieren (die Secrets brauchen)
|
||||
2. NixOS installieren
|
||||
3. SSH-Host-Key extrahieren, SOPS konfigurieren, Secrets erstellen
|
||||
4. Services reaktivieren und deployen
|
||||
3. SSH-Host-Key extrahieren, SOPS konfigurieren, sofort erstellbare Secrets anlegen
|
||||
4. Stufe-1-Services aktivieren und deployen (Headscale, Forgejo, Mail, Nginx)
|
||||
5. Restliche Secrets generieren (Tailscale, Headplane, Forgejo-Runner)
|
||||
6. Stufe-2-Services aktivieren und final deployen
|
||||
```
|
||||
|
||||
## Schritt 1: Host-Konfiguration vorbereiten
|
||||
|
|
@ -198,7 +200,7 @@ Diese Secrets haben keine Abhaengigkeiten und koennen direkt generiert werden:
|
|||
|
||||
#### Secrets die laufende Services brauchen
|
||||
|
||||
Diese Secrets koennen erst erstellt werden, nachdem die entsprechenden Services laufen. Bis dahin **Platzhalter** eintragen (z.B. `placeholder`):
|
||||
Diese Secrets koennen erst nach Schritt 4 erstellt werden. **Jetzt noch nicht eintragen** -- sie werden spaeter ergaenzt.
|
||||
|
||||
| Secret | Befehl | Voraussetzung |
|
||||
|--------|--------|---------------|
|
||||
|
|
@ -209,13 +211,8 @@ Diese Secrets koennen erst erstellt werden, nachdem die entsprechenden Services
|
|||
#### Beispiel secrets.yaml (Klartext vor Verschluesselung)
|
||||
|
||||
```yaml
|
||||
tailscale:
|
||||
auth-key: "placeholder"
|
||||
forgejo-runner:
|
||||
token: "placeholder"
|
||||
headplane:
|
||||
cookie_secret: "a1b2c3d4e5f6..."
|
||||
agent_pre_authkey: "placeholder"
|
||||
mailserver:
|
||||
accounts:
|
||||
admin: "$2b$05$..."
|
||||
|
|
@ -224,29 +221,53 @@ forgejo:
|
|||
mail-pw: "das-klartext-passwort"
|
||||
```
|
||||
|
||||
### 3.4 Services reaktivieren
|
||||
### 3.4 Services stufenweise reaktivieren -- Stufe 1
|
||||
|
||||
Auf dem **Entwicklungsrechner** die in Schritt 1.4 auskommentierten Imports in `hosts/<hostname>/services/default.nix` wieder aktivieren:
|
||||
> **Wichtig:** Services die Headscale- oder Forgejo-Secrets brauchen (Tailscale,
|
||||
> Headplane, Forgejo-Runner) duerfen noch **nicht** aktiviert werden, da diese
|
||||
> Secrets erst generiert werden koennen, wenn die Services laufen.
|
||||
|
||||
Auf dem **Entwicklungsrechner** in `hosts/<hostname>/services/default.nix` die
|
||||
Services **ohne externe Abhaengigkeiten** aktivieren:
|
||||
|
||||
```nix
|
||||
{
|
||||
imports = [
|
||||
# Stufe 1: Services ohne externe Abhaengigkeiten
|
||||
./forgejo.nix
|
||||
./headplane.nix
|
||||
./headscale.nix
|
||||
./mailserver.nix
|
||||
./netdata.nix
|
||||
./nginx.nix
|
||||
./openssh.nix
|
||||
./sops.nix
|
||||
./tailscale.nix
|
||||
|
||||
# Stufe 2: Erst nach Schritt 4 aktivieren
|
||||
# ./headplane.nix # braucht: headplane/agent_pre_authkey (Headscale)
|
||||
# ./tailscale.nix # braucht: tailscale/auth-key (Headscale)
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
Ebenso in `hosts/<hostname>/services/sops.nix` die Secrets-Definitionen wieder einkommentieren.
|
||||
Ebenso in `hosts/<hostname>/services/sops.nix` die Secrets-Definitionen wieder
|
||||
einkommentieren, **aber nur die fuer Stufe-1-Services**:
|
||||
|
||||
### 3.5 Deployen
|
||||
```nix
|
||||
sops = {
|
||||
defaultSopsFile = ../secrets.yaml;
|
||||
secrets = {
|
||||
# "forgejo-runner/token" = { }; # Stufe 2
|
||||
"tailscale/auth-key" = { };
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
> **Hinweis:** `tailscale/auth-key` muss in `sops.nix` definiert bleiben, da das
|
||||
> Tailscale-Modul es referenziert. Es wird aber erst in Schritt 4 mit einem
|
||||
> echten Wert befuellt. Solange Tailscale nicht importiert ist, hat das keinen
|
||||
> Effekt.
|
||||
|
||||
### 3.5 Deployen (Stufe 1)
|
||||
|
||||
```bash
|
||||
nix run .#deploy -- -n <hostname>
|
||||
|
|
@ -259,9 +280,11 @@ NIX_SSHOPTS="-p 2299" nixos-rebuild switch --flake .#<hostname> \
|
|||
--target-host <user>@<IP> --sudo --ask-sudo-password
|
||||
```
|
||||
|
||||
## Schritt 4: Platzhalter-Secrets ersetzen
|
||||
Nach diesem Deploy laufen Headscale, Forgejo, Mailserver und Nginx.
|
||||
|
||||
Nachdem der Server mit Headscale und Forgejo laeuft, die Platzhalter durch echte Werte ersetzen:
|
||||
## Schritt 4: Restliche Secrets generieren und alle Services aktivieren
|
||||
|
||||
Nachdem der Server mit Headscale und Forgejo laeuft:
|
||||
|
||||
1. **Headscale-User anlegen** (auf dem Server):
|
||||
|
||||
|
|
@ -283,14 +306,44 @@ Nachdem der Server mit Headscale und Forgejo laeuft, die Platzhalter durch echte
|
|||
3. **Forgejo-Runner-Token** ueber das Forgejo Admin Panel erstellen:
|
||||
Administration > Actions > Runners > Create new Runner
|
||||
|
||||
4. **Secrets aktualisieren**:
|
||||
4. **Secrets ergaenzen**:
|
||||
|
||||
```bash
|
||||
sops hosts/<hostname>/secrets.yaml
|
||||
# Platzhalter durch echte Werte ersetzen
|
||||
```
|
||||
|
||||
5. **Erneut deployen**:
|
||||
Die fehlenden Secrets eintragen:
|
||||
|
||||
```yaml
|
||||
tailscale:
|
||||
auth-key: "tskey-..."
|
||||
forgejo-runner:
|
||||
token: "..."
|
||||
headplane:
|
||||
agent_pre_authkey: "..."
|
||||
```
|
||||
|
||||
5. **Stufe-2-Services aktivieren** in `hosts/<hostname>/services/default.nix`:
|
||||
|
||||
```nix
|
||||
{
|
||||
imports = [
|
||||
./forgejo.nix
|
||||
./headplane.nix
|
||||
./headscale.nix
|
||||
./mailserver.nix
|
||||
./netdata.nix
|
||||
./nginx.nix
|
||||
./openssh.nix
|
||||
./sops.nix
|
||||
./tailscale.nix
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
Und in `sops.nix` auch `forgejo-runner/token` einkommentieren.
|
||||
|
||||
6. **Erneut deployen**:
|
||||
|
||||
```bash
|
||||
nix run .#deploy -- -n <hostname>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue