Zum Hauptinhalt springen Zur Navigation springen Zur Fußzeile springen

Repositories

LUKS-verschlüsselte Repositories auf entfernten Maschinen erstellen, verwalten und betreiben.

Repositories

Ein Repository ist ein LUKS-verschlüsseltes Disk-Image auf einem entfernten Server. Nach dem Einbinden bietet es:

  • Ein isoliertes Dateisystem für Ihre Anwendungsdaten
  • Einen dedizierten Docker-Daemon (getrennt vom Docker des Hosts)
  • Einzigartige Loopback-IPs für jeden Dienst innerhalb eines /26-Subnetzes

Repository erstellen

rdc repo create --name my-app -m server-1 --size 10G
OptionErforderlichBeschreibung
-m, --machine <name>JaZielmaschine, auf der das Repository erstellt wird.
--size <size>JaGröße des verschlüsselten Disk-Images (z. B. 5G, 10G, 50G).
--skip-router-restartNoSkip restarting the route server after the operation

Die Ausgabe zeigt drei automatisch generierte Werte:

  • Repository-GUID — Eine UUID, die das verschlüsselte Disk-Image auf dem Server identifiziert.
  • Credential — Eine zufällige Passphrase zum Ver- und Entschlüsseln des LUKS-Volumes.
  • Netzwerk-ID — Eine Ganzzahl (beginnend bei 2816, um 64 inkrementiert), die das IP-Subnetz für die Dienste dieses Repositories bestimmt.

Bewahren Sie das Credential sicher auf. Es ist der Verschlüsselungsschlüssel für Ihr Repository. Bei Verlust können die Daten nicht wiederhergestellt werden. Das Credential wird in Ihrer lokalen config.json gespeichert, jedoch nicht auf dem Server.

Einbinden und Aushängen

Das Einbinden entschlüsselt und macht das Repository-Dateisystem zugänglich. Das Aushängen schließt das verschlüsselte Volume.

rdc repo mount --name my-app -m server-1  # Entschlüsseln und einbinden
rdc repo unmount --name my-app -m server-1  # Aushängen und wieder verschlüsseln
OptionBeschreibung
--checkpointEinen Checkpoint vor dem Einbinden/Aushängen erstellen
--skip-router-restartSkip restarting the route server after the operation

Status prüfen

rdc repo status --name my-app -m server-1

Repositories auflisten

rdc repo list -m server-1

Größe ändern

Das Repository auf eine exakte Größe setzen oder um einen bestimmten Betrag erweitern:

rdc repo resize --name my-app -m server-1 --size 20G  # Auf exakte Größe setzen
rdc repo expand --name my-app -m server-1 --size 5G  # 5G zur aktuellen Größe hinzufügen

Das Repository muss vor der Größenänderung ausgehängt werden.

Forken

Eine Kopie eines vorhandenen Repositories in seinem aktuellen Zustand erstellen:

rdc repo fork --parent my-app --tag staging -m server-1

Forks verwenden das Name:Tag-Modell: Der resultierende Fork heisst my-app:staging. Dies erstellt eine neue verschlüsselte Kopie mit eigener GUID und Netzwerk-ID, wobei der Name des übergeordneten Repositories geteilt wird. Der Fork teilt sich das gleiche LUKS-Credential wie das übergeordnete Repository.

Validieren

Die Dateisystemintegrität eines Repositories prüfen:

rdc repo validate --name my-app -m server-1

Eigentümerschaft

Die Dateieigentümerschaft innerhalb eines Repositories auf den universellen Benutzer (UID 7111) setzen. Dies ist typischerweise erforderlich, nachdem Dateien von Ihrer Workstation hochgeladen wurden, die mit Ihrer lokalen UID ankommen.

rdc repo ownership --name my-app -m server-1

Der Befehl erkennt automatisch Docker-Container-Datenverzeichnisse (beschreibbare Bind-Mounts) und schließt sie aus. Dies verhindert das Beschädigen von Containern, die Dateien mit eigenen UIDs verwalten (z. B. MariaDB=999, www-data=33).

OptionBeschreibung
--uid <uid>Eine benutzerdefinierte UID anstelle von 7111 setzen
--skip-router-restartSkip restarting the route server after the operation

Um die Eigentümerschaft aller Dateien zu erzwingen, einschließlich Container-Daten:

rdc repo ownership --name my-app -m server-1

Siehe den Migrationsleitfaden für eine vollständige Anleitung, wann und wie die Eigentümerschaft bei der Projektmigration verwendet wird.

Vorlage

Eine Vorlage anwenden, um ein Repository mit Dateien zu initialisieren:

rdc repo template apply --name my-template -m server-1 -r my-app --file ./my-template.tar.gz

Löschen

Ein Repository und alle darin enthaltenen Daten dauerhaft zerstören:

rdc repo delete --name my-app -m server-1

Dies zerstört dauerhaft das verschlüsselte Disk-Image. Diese Aktion kann nicht rückgängig gemacht werden.