83. pepsi-config

Inspiziert und bearbeitet die effektive Konfiguration, die von jeder Komponente gemeinsam genutzt wird.

83.1. Rolle

pepsi-config schlägt die zusammengeführte Pepsi-Konfiguration nach, expandiert sie, gibt sie aus und bearbeitet sie. Jede Komponente liest dieselbe Konfigurationsdatei im INI-Stil und dieselbe Datenbank-Überlagerung (pepsi.config_override), sodass ein einziges Werkzeug allen dient und kein anderes Binärprogramm einen config-Unterbefehl hat. Es ist ein Operator-CLI, keine Stage. Referenz: pepsi-config(1).

Die Lesebefehle berichten die effektive Konfiguration — die Datei, ergänzt um die Überlagerung. Eine nicht erreichbare Datenbank ist kein Fehler: Stattdessen wird die Konfiguration der Datei mit einer Warnung berichtet, denn eine unerreichbare Datenbank ist oft genau die Lage, in der ein Operator zu diesem Werkzeug greift. Die Schreibbefehle bearbeiten allein die Überlagerung; sie rühren die Konfigurationsdatei nie an, die die eigene des Operators bleibt. Schreibvorgänge verbinden sich als die PostgreSQL-Rolle pepsi-config (automatisch übernommen, wenn als root gestartet wird), sodass die Frage, wer die Konfiguration bearbeiten darf, eine Datenbankberechtigung ist statt einer Prüfung in diesem Programm.

83.2. Funktionen

  • get SECTION OPTION — gibt den Wert einer Option in einem Abschnitt aus; mit --filename wird der Wert als Pfad behandelt und $-expandiert.

  • pathsub PATH_EXPR — ersetzt ${VAR}/$VAR-Platzhalter in einem Pfadausdruck aus dem [PATHS]-Abschnitt und der Umgebung.

  • dump — gibt die zusammengeführte Konfiguration aus; --diagnostics ergänzt die zusätzliche Ausgabe des Parsers, --origin versieht jeden Wert mit der Schicht, aus der er stammt (file oder der Datenbank-Geltungsbereich, der ihn zuletzt gesetzt hat), und --scope löst die Kette für einen anderen Geltungsbereich als global auf.

  • set SECTION OPTION VALUE / unset SECTION [OPTION] — schreibt oder entfernt eine Überschreibung (oder, bei unset ohne Option, einen ganzen Abschnitt) in der Datenbank-Überlagerung im Geltungsbereich von --scope (standardmäßig global, sonst domain:<d> oder address:<a>). Abschnitte, die nur aus der Datei gelesen werden, werden abgelehnt.

  • list — gibt die gespeicherten Überschreibungen aus, wahlweise mit --scope eingeschränkt und mit --drafts einschließlich der vorbereiteten Datensätze.

  • export FILE / import FILE — schreibt ein passwortverschlüsseltes Archiv des Konfigurationsverzeichnisses und stellt es wieder her (- für die Standardausgabe/-eingabe; --from/--into wählen das Verzeichnis, --password-file vermeidet die Eingabeaufforderung, --force überschreibt vorhandene Dateien). Dies ist die Hälfte einer Sicherung, die PostgreSQLs eigene Werkzeuge nicht abdecken können: die Konfigurationsdatei und die secrets.d-Fragmente.

Werte, die Geheimnisse sind, werden in der Ausgabe von dump maskiert, sodass ein Dump einem Fehlerbericht beigelegt werden kann. Ein vorgeschlagenes set wird vor dem Speichern validiert, indem die Konfiguration gebaut wird, die die Änderung ergäbe, und der eigene Parser der besitzenden Stage darüber laufen gelassen wird: Ein Wert, der ein Programm am Starten hindern würde, wird abgelehnt statt geschrieben.

83.3. Validierung

pepsi-config dump ergänzt das check von pepsi-setup(1) beim Validieren einer Installation: check fragt Live-DNS ab, während dump die effektiven Werte zeigt, die die Komponenten tatsächlich sehen werden.

83.4. Siehe auch

pepsi-setup, Konfiguration, pepsi-config(1), pepsi.conf(5).