Zum Hauptinhalt springen

Wo befindet sich die Konfigurationsdatei

Der Renderer überschreibt — die Vorlage ist die richtige Stelle zum Ändern

Bei jedem Start wird config/templates/*.template gerendert und an die Konfigurationsstelle jeder Komponente überschrieben. Wenn Sie die Dateien auf der Komponentenseite direkt ändern, verschwinden diese Änderungen beim nächsten Start. → So ändern Sie die Einstellungen

Die Datenlake-Konfiguration wird nach dem Prinzip «Zwei Quellen, eine Richtung» erstellt. Die Datei, die der Bediener ändert, ist festgelegt, und die Konfigurationsdatei im Container ist das aus dieser Datei generierte Produkt.

호스트 /etc/kopens/conf/*.template ← 설정의 «형태» (빈칸이 뚫린 원본)
× /etc/kopens/plantpulse-platform.env ← 시크릿 (비밀번호 · API 키)
× /etc/kopens/platform.node.env ← 이 노드의 값 (IP · 모드)
+ 이미지 안 config/defaults.env ← 비밀 아닌 기본값 (위에서 안 준 것만)
─────────────────────────────────────────
→ pd config render → /opt/kopens/plantpulse-platform/<module>/conf/… (생성물)

pd start wird ausnahmslos bei jedem Mal zuerst gerendert. Deshalb verschwinden manuelle Änderungen am erzeugten Produkt im Container beim nächsten Start. Am 2026-09-01 gab es tatsächlich einen Vorfall, bei dem cassandra.yaml im Container geändert und die Authentifizierung aktiviert wurde, aber durch die Regenerierung die Datei zurückgesetzt und die Authentifizierung vollständig beschädigt wurde.

Die vier kanonischen Dateien​

#DateiInhaltFormatWer schreibt
1/etc/kopens/plantpulse-platform.envGeheimnisse — Service-Kontopasswörter · API-Schlüssel · TLS-Passwörter. Auch nicht geheime gemeinsame Werte können hier eingetragen werdenVAR=값 Eintrag pro Zeile, ohne export. Die ersten beiden Zeilen (# generated: · # last rotation:) werden vom Tool verwaltetinstall.sh erstellt, passwd.sh aktualisiert. Nicht geheime Zeilen direkt vom Bediener
2/etc/kopens/platform.node.envNur für diese Box gültige Werte — PP_MASTER_IP · PP_KAFKA_ADVERTISED_HOST · DOCKER_PP_EXTERNAL_IP · PP_NODE_IDGleiches FormatVom Installationswerkzeug aus der Vorlage erstellt, dann direkt vom Bediener
3/etc/kopens/conf/*.templateDie Form der Konfiguration — 33 Originale der Konfigurationsdateien der einzelnen EnginesSyntax der jeweiligen Engine + ${PP_변수} PlatzhalterBeim ersten Start aus dem Image geseedet, danach direkt vom Bediener
4(im Image) plantpulse-datalake-cli/config/defaults.envNicht geheime Standardwerte — Ports · Kontonamen · Verzeichnisse · TLS-EinstellungenKEY=valueProdukt. Der Bediener ändert nichts, sondern überschreibt mit 1 und 2
Passwörter werden nicht durch Dateibearbeitung geändert

Nur die Passwortzeile in der Sidecar zu ändern, ist nicht ausreichend. Bei Werten wie PostgreSQL · Aster TSDB, wo das Serverkonto die kanonische Quelle ist, muss auch die Serverseite geändert werden, und bei falscher Reihenfolge startet die Plattform nicht. bin/passwd.sh übernimmt diese Reihenfolge → Passwörter · API-Schlüssel ändern

Reihenfolge der Wertbestimmung​

Die Reihenfolge, in der die bin/env.sh des Hosts von oben nach unten liest, ist zugleich die Priorität. Was später gelesen wird, gewinnt.

PrioritätQuelleWarum es gewinnt
1 (höchste)/etc/kopens/platform.node.envWird nach der Sidecar gelesen, bedingungslose Zuweisung
2/etc/kopens/plantpulse-platform.envBedingungslose Zuweisung von VAR=값 — überschreibt auch Shell-export
3export der aufrufenden ShellNur wenn 1 und 2 diesen Namen nicht gesetzt haben
4 (niedrigste)bin/env.sh aus ${VAR:-기본값}Nur wenn niemand gesetzt hat

Dieser Wert geht über den Compose-Befehl als Umgebungsvariable in den Container, und im Container gewinnt der übergebene Wert gegen defaults.env.

Bei Knoten mit abgeschlossener Installation wird export stillschweigend ignoriert

Die Methode, Werte in der Shell zu setzen, wie bei PP_PG_PASSWORD=새값 bin/up.sh, funktioniert nur auf Knoten, die noch keine Sidecar haben. Wenn die Sidecar diesen Namen bereits führt, gewinnt die Sidecar. Tatsächlich gab es einen Vorfall, bei dem man glaubte, es geändert zu haben, und weitermachte.

Um den aktuellen gültigen Wert und die Quelle zu sehen, simulieren Sie nicht im Kopf, sondern führen Sie diesen Befehl aus. Geheimnisse werden mit **** maskiert.

cd /opt/kopens/plantpulse-platform-docker
bin/env.sh --print

Im Container gibt es keine Sidecar​

Im Container wird die /etc/kopens/plantpulse-platform.env-Datei nicht gemountet. Der Wert gelangt nur über den Pfad, in dem die bin/env.sh des Hosts die Sidecar liest und der Compose-Befehl es als Umgebungsvariable in den Container einspeist.

Daraus ergeben sich zwei Konsequenzen.

  • Nach der Änderung der Sidecar muss der Container neu erstellt werden, damit der neue Wert enthalten ist. Das übernimmt die bin/restart-datalake.sh des Hosts.
  • Namen, die der Compose-Befehl nicht einträgt, erreichen den Container nicht, egal was in der Sidecar steht. Welche Namen ankommen, bestimmen der compose/docker-compose.yml-Anker von x-pp-secrets und der environment:-Block des plantpulse-datalake-Dienstes. Variablenreferenz listet nur die «ankommenden Namen» auf.

Wenn Sie pd doctor im Container ausführen, erscheint keine Sidecar-Zeile als «Datei nicht gefunden», sondern gar nicht; stattdessen zeigt die all required secrets set-Zeile die tatsächliche Messung — das ist normal.

Vorlagenliste — was wird wohin gerendert​

Die 33 Vorlagen der /etc/kopens/conf/ des Hosts (23 oberste + cluster/ 10) werden an die folgenden Stellen geschrieben. Die kanonische Zuordnungstabelle liegt im Container in plantpulse-datalake-cli/config/render.map, und pd config list druckt die Zeile, die dem Modus dieses Knotens entspricht.

VorlageRender-Ziel (bezogen auf PP_HOME)MASTERWORKER
valkey.confplantpulse-storage/cache/valkey/conf/valkey.conf○○ (cluster/)
postgresql.conf · pg_hba.confplantpulse-storage/db/postgres/conf/○○ (cluster/)
cassandra.yaml · jvm-server.optionsplantpulse-storage/db/cassandra/conf/○○ (cluster/)
spark-env.sh · spark-defaults.conf · metrics.propertiesplantpulse-analytics/spark/conf/○○
hive-site.xml · hive-auth.propertiesplantpulse-analytics/spark/conf/○○ (cluster/)
hive-site.xmlplantpulse-analytics/hive/conf/hive-site.xml○—
kyuubi-defaults.confplantpulse-analytics/kyuubi/conf/○○
gravitino-iceberg-rest-server.confplantpulse-analytics/gravitino/conf/○—
kafka.properties · kafka-jaas.confplantpulse-messaging/kafka/config/kafka.properties · jaas.conf○—
hivemq.xml · plantpulse-mq-auth.propertiesplantpulse-messaging/mqtt/conf/config.xml · auth.properties○—
plantpulse-timeseries-engine.confplantpulse-timeseries/engine/conf/ (unter zwei Namen)○—
plantpulse-datalake-admin-api.propertiesplantpulse-datalake-admin-api/config/○○ (cluster/)
workflow.yaml · application.yamlplantpulse-workflow/temporal/config/ · kestra/config/○—
plantpulse-cep.propertiesplantpulse-cep/config/○—
plantpulse-jdbc.properties · plantpulse-data-gateway.propertiesplantpulse-data-gateway/config/○—

Die cluster/-Markierung bedeutet, dass der WORKER-Knoten eine andere Vorlage unter /etc/kopens/conf/cluster/ verwendet. Zum Beispiel hat die valkey.conf.template des MASTER keine replicaof, während cluster/valkey.conf.template die replicaof ${PP_MASTER_IP} ${PP_REDIS_PORT} enthält.

Vorlagensyntax​

Es gibt nur drei.

SyntaxBedeutung
${PP_VAR}Wenn kein Wert vorhanden ist, schlägt das Rendern vollständig fehl (exit 4). Es wird nicht mit einem leeren Wert gefüllt und weitergemacht
${PP_VAR:기본값} · ${PP_VAR:-기본값}Wenn kein Wert vorhanden ist, wird der Standardwert verwendet

Geheimnisse dürfen keinen Inline-Standardwert haben. Der alte Renderer füllte mit einem leeren Wert und machte weiter, sodass eine Aster TSDB mit leerem Passwort-String auftauchte. Deshalb werden jetzt alle fehlenden Namen aufgelistet und angehalten.

Nicht gerenderte Einstellungen — Verwaltungskonsolen-Konto​

Das Login-Konto der Verwaltungskonsole ist in keiner Vorlage enthalten. Der admin-api-Prozess liest es direkt aus den Umgebungsvariablen. Dies dient dazu, keine zweite Passwortkopie auf der Festplatte zu erstellen.

VariableWoher kommt sieStandardwert
PP_DATALAKE_ADMIN_USERdefaults.envadmin
PP_DATALAKE_ADMIN_PASSWORDSidecarFür Installationen ab 2026-09-05 gilt der gleiche Entwicklungsstandard wie für den Web-Konsolen-Administrator → Initialpasswort ändern. Bei Installationen davor ist sie leer, sodass die Konsole deaktiviert ist
PP_DATALAKE_ADMIN_API_KEYSidecarKein — wenn leer, ist nur die Schlüsselauthentifizierung deaktiviert, der Browser-Login bleibt bestehen

Komponenten können nicht einzeln deaktiviert werden​

Die Variable PD_OPTIONS existiert, aber der aktuelle Compose-Stack übergibt diesen Wert nicht an den Container. Daher wird eine Konfiguration, die nur eine Komponente ausnimmt, derzeit nicht unterstützt → FAQ

Zugehörige Dokumente​