Wo befindet sich die Konfigurationsdatei
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
| # | Datei | Inhalt | Format | Wer schreibt |
|---|---|---|---|---|
| 1 | /etc/kopens/plantpulse-platform.env | Geheimnisse — Service-Kontopasswörter · API-Schlüssel · TLS-Passwörter. Auch nicht geheime gemeinsame Werte können hier eingetragen werden | VAR=값 Eintrag pro Zeile, ohne export. Die ersten beiden Zeilen (# generated: · # last rotation:) werden vom Tool verwaltet | install.sh erstellt, passwd.sh aktualisiert. Nicht geheime Zeilen direkt vom Bediener |
| 2 | /etc/kopens/platform.node.env | Nur für diese Box gültige Werte — PP_MASTER_IP · PP_KAFKA_ADVERTISED_HOST · DOCKER_PP_EXTERNAL_IP · PP_NODE_ID | Gleiches Format | Vom Installationswerkzeug aus der Vorlage erstellt, dann direkt vom Bediener |
| 3 | /etc/kopens/conf/*.template | Die Form der Konfiguration — 33 Originale der Konfigurationsdateien der einzelnen Engines | Syntax der jeweiligen Engine + ${PP_변수} Platzhalter | Beim ersten Start aus dem Image geseedet, danach direkt vom Bediener |
| 4 | (im Image) plantpulse-datalake-cli/config/defaults.env | Nicht geheime Standardwerte — Ports · Kontonamen · Verzeichnisse · TLS-Einstellungen | KEY=value | Produkt. Der Bediener ändert nichts, sondern überschreibt mit 1 und 2 |
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ät | Quelle | Warum es gewinnt |
|---|---|---|
| 1 (höchste) | /etc/kopens/platform.node.env | Wird nach der Sidecar gelesen, bedingungslose Zuweisung |
| 2 | /etc/kopens/plantpulse-platform.env | Bedingungslose Zuweisung von VAR=값 — überschreibt auch Shell-export |
| 3 | export der aufrufenden Shell | Nur 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.
export stillschweigend ignoriertDie 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.shdes 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 vonx-pp-secretsund derenvironment:-Block desplantpulse-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.
| Vorlage | Render-Ziel (bezogen auf PP_HOME) | MASTER | WORKER |
|---|---|---|---|
valkey.conf | plantpulse-storage/cache/valkey/conf/valkey.conf | ○ | ○ (cluster/) |
postgresql.conf · pg_hba.conf | plantpulse-storage/db/postgres/conf/ | ○ | ○ (cluster/) |
cassandra.yaml · jvm-server.options | plantpulse-storage/db/cassandra/conf/ | ○ | ○ (cluster/) |
spark-env.sh · spark-defaults.conf · metrics.properties | plantpulse-analytics/spark/conf/ | ○ | ○ |
hive-site.xml · hive-auth.properties | plantpulse-analytics/spark/conf/ | ○ | ○ (cluster/) |
hive-site.xml | plantpulse-analytics/hive/conf/hive-site.xml | ○ | — |
kyuubi-defaults.conf | plantpulse-analytics/kyuubi/conf/ | ○ | ○ |
gravitino-iceberg-rest-server.conf | plantpulse-analytics/gravitino/conf/ | ○ | — |
kafka.properties · kafka-jaas.conf | plantpulse-messaging/kafka/config/kafka.properties · jaas.conf | ○ | — |
hivemq.xml · plantpulse-mq-auth.properties | plantpulse-messaging/mqtt/conf/config.xml · auth.properties | ○ | — |
plantpulse-timeseries-engine.conf | plantpulse-timeseries/engine/conf/ (unter zwei Namen) | ○ | — |
plantpulse-datalake-admin-api.properties | plantpulse-datalake-admin-api/config/ | ○ | ○ (cluster/) |
workflow.yaml · application.yaml | plantpulse-workflow/temporal/config/ · kestra/config/ | ○ | — |
plantpulse-cep.properties | plantpulse-cep/config/ | ○ | — |
plantpulse-jdbc.properties · plantpulse-data-gateway.properties | plantpulse-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.
| Syntax | Bedeutung |
|---|---|
${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.
| Variable | Woher kommt sie | Standardwert |
|---|---|---|
PP_DATALAKE_ADMIN_USER | defaults.env | admin |
PP_DATALAKE_ADMIN_PASSWORD | Sidecar | Fü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_KEY | Sidecar | Kein — 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
- So ändern Sie die Einstellungen — eigentlicher Ablauf
- Variablenreferenz
- Pfadübersicht