Einzeiler-Installation (Empfohlen)
Übersicht
Dies ist der schnellste Weg, um die PlantPulse Platform mit einem einzigen Befehl zu installieren. Das Installationsskript wird vom Download-Server bezogen und führt automatisch das OS-Setup, die Docker-Installation, die Firewall-Konfiguration und das Starten des Docker Compose Stacks durch.
Wann sollte dies verwendet werden? Geeignet für eine schnelle Installation mit Standardkonfiguration in Standardumgebungen (Oracle Linux 8 / RHEL 9 / Ubuntu 20.04+ / Amazon Linux 2023). Für Produktionsumgebungen, in denen detaillierte Einstellungen Schritt für Schritt geprüft werden müssen, wird das manuelle Installationsverfahren auf der Seite Docker-Installation empfohlen.
Auswahl des Installationsmodus
Entscheiden Sie vor der Installation, welche Konfiguration Sie verwenden möchten.
| Konfiguration | Anzahl Server | Empfohlene Situation | Leitfaden |
|---|---|---|---|
| Single-Box (FULL) — Standard | 1 Server (Empfohlen 256GB, Min. 128GB) | Standardkonfiguration. Folgen Sie den Schritten auf dieser Seite | Diese Seite |
| Air-Gap-Netzwerk (Airgap) | — | Umgebungen ohne Internetverbindung | Air-Gap-Installation |
Die folgenden Schritte beziehen sich auf die Single-Box (FULL) Konfiguration. Wenn das Skript ohne Umgebungsvariablen ausgeführt wird, erfolgt die Installation im FULL-Modus.
Unterstützte Umgebungen
| OS | Version |
|---|---|
| Oracle Linux | 8.x |
| RHEL / Rocky Linux | 8.x, 9.x |
| Ubuntu | 20.04+ (20 / 22 / 24) |
| Amazon Linux | 2, 2023 |
Voraussetzungen
- Server mit Internetverbindung (Zugriff auf Download-Server
product.kopens.ioerforderlich) rootBerechtigungen- Mindestens 16 vCPU / 128GB RAM / 1TB SSD (Empfehlung für Betrieb: 32 vCPU / 256GB RAM) — Dem Data Lake Master müssen mindestens 96GB zugewiesen werden können; 64GB entsprechen nicht den Systemanforderungen (Systemanforderungen)
In Air-Gap-Netzwerken kann die Einzeiler-Installation nicht verwendet werden. Bitte beachten Sie die Schritte auf der Seite Air-Gap-Installation.
Installation ausführen
Verbinden Sie sich per SSH mit dem Server und führen Sie den folgenden Befehl aus.
sudo -i
curl -fsSL https://product.kopens.io/plantpulse-platform/install.sh | bash
Das Skript führt automatisch folgende Schritte aus:
- Automatische OS-Erkennung (RHEL/Rocky/Oracle 8·9, Ubuntu 20+, Amazon Linux)
- Installation von Docker Engine + Compose v2 und Konfiguration des Daemons (data-root)
- Kernel- und Ressourcen-Tuning (
limits.conf,sysctl.conf,chrony.conf,tmpfiles.d) - Umstellung von SELinux auf permissive und Deaktivierung von Swap
- Automatisches Öffnen von Firewall-Ports — Öffentliche Ports (80/443/4949/4950) und eingeschränkte Ports für private Netzwerke
- Erstellung des Sidecar für Service-Anmeldedaten (
/etc/kopens/plantpulse-platform.env) - Anmeldung an der Container-Registry (
docker.kopens.io) - Erstellung von Docker-Netzwerken / Volumes und Starten des Compose-Stacks
Nach Abschluss der Installation sind neun Container dauerhaft in Betrieb — Zertifikate(plantpulse-certs), Infrastruktur(plantpulse-datalake), sechs Apps(plantpulse-server-web · plantpulse-batch-web · plantpulse-warehouse-web · plantpulse-plugin-opcua-server · plantpulse-plugin-aasx-server · plantpulse-ha), Edge(plantpulse-proxy).
Details zur Konfiguration finden Sie unter Docker-Installation — Installationsstruktur.
Das Installationsskript führt ein Polling durch, bis der Stack nach dem Start bereit ist. Die reine Prozessstartzeit beträgt 3 bis 5 Minuten (JVM Warm-up), jedoch dauert eine Neuinstallation aufgrund der Aster TSDB Schema-Migration und Stabilisierung 15 bis 18 Minuten, bis alle Komponenten stabil laufen. Neustarts erfolgen wesentlich schneller, da das Schema bereits existiert.
Installationsoptionen
# Docker가 이미 설치된 경우 OS 셋업 단계 생략
curl -fsSL https://product.kopens.io/plantpulse-platform/install.sh | bash -s -- --skip-os
| Option | Effekt |
|---|---|
--skip-os | Überspringt OS-Setup und Docker-Installation (falls Docker bereits installiert ist) |
Hinweis: Da die Einzeiler-Installation die Registry-Authentifizierung automatisch konfiguriert, ist kein separates
docker loginerforderlich. Das Überspringen der Firewall(SKIP_FW=1), das Überspringen des Registry-Logins(SKIP_LOGIN=1) oder die Änderung des Docker data-root-Pfads(DOCKER_DATA_DIR, Standard/data1/docker-data) wird durch Umgebungsvariablen beim direkten Ausführen des heruntergeladenenbin/install.shauf dem Node definiert → Docker-Installation
Installationsprüfung
Überprüfen Sie nach Abschluss der Installation den Status mit dem folgenden Befehl.
cd /opt/kopens/plantpulse-platform-docker/bin
./status.sh # 0 = 정상 / 2 = 비정상
./ops-check.sh
curl -kfsS https://<server-ip>:4950/api/health | jq # "status":"OK" 또는 "WARN" 이면 정상
docker ps # 아홉 개가 모두 (healthy)
plantpulse-platform in docker ps fehltDie Konfiguration eines einzelnen Containers unter diesem Namen wurde eingestellt. Bei einer Standardinstallation erscheinen die folgenden neun:
plantpulse-certs · plantpulse-datalake · plantpulse-server-web ·
plantpulse-batch-web · plantpulse-warehouse-web · plantpulse-plugin-opcua ·
plantpulse-plugin-aasx · plantpulse-ha · plantpulse-proxy
Der zehnte Container, plantpulse-mirror-maker, wird standardmäßig nicht gestartet — er erscheint nur, wenn das mirror Profil von Compose aktiviert wurde. Es ist normal, dass er nicht sichtbar ist → Utility-Module
Der Befehl docker logs plantpulse-platform aus alten Runbooks funktioniert nicht mehr. Prüfen Sie die Logs mit ./logs.sh.
Wenn alle Einträge normal sind, greifen Sie über den Browser auf die Webkonsole zu.
https://[서버IP] # 웹 콘솔 (80/443, plantpulse-proxy 가 받습니다)
https://[서버IP] # 관리 UI (웹 콘솔과 같은 주소)
https://[서버IP]:4950 # 모니터 UI
- Standard-Administrator: admin / admin123!
- Bitte ändern Sie das Passwort zwingend nach dem ersten Login. → Initiales Passwort
Anpassung von Umgebungsvariablen nach der Installation
Die Einzeiler-Installation berechnet Ressourcenwerte automatisch basierend auf dem Host, sodass an den meisten Servern keine Anpassungen erforderlich sind. Nur Werte, die nicht automatisch bestimmt werden können (wie Locales), müssen angepasst werden.
Die Änderungen müssen in der Sidecar-Datei vorgenommen werden.
vi /etc/kopens/plantpulse-platform.env
cd /opt/kopens/plantpulse-platform-docker/bin && ./restart.sh
Schreiben Sie pro Zeile ein 이름=값.
PP_LANG=ko
DOCKER_PP_EXTERNAL_IP=203.0.113.10
bin/env.sh nicht — diese Daten gehen bei Neuinstallation verlorenDas Installationsskript löscht den gesamten Installationsbaum und lädt ihn neu herunter. /opt/kopens/plantpulse-platform-docker
Manuell unten eingetragene Werte werden bei Neuinstallationen oder Upgrades vollständig entfernt.
Die Sidecar-Datei /etc/kopens/plantpulse-platform.env liegt außerhalb des Installationsbaums und bleibt erhalten.
Sie wird bei der Installation erstellt und hat die Berechtigung 0600.
Die Reihenfolge der Wertzuweisung ist wie folgt:
| Priorität | Ort | Anmerkung |
|---|---|---|
| 1 | Sidecar /etc/kopens/plantpulse-platform.env | Überschreibt die folgenden Standardwerte. Hier anpassen |
| 2 | Standardwert von bin/env.sh | Vom Produkt definierter Wert |
| 3 | Explizite export-Zeilen unter bin/env.sh | Wird zuletzt gelesen und gewinnt, geht aber bei Neuinstallation verloren |
Häufig angepasste Parameter:
| Variable | Beschreibung | Standardwert |
|---|---|---|
PP_LANG | Plattform-Locale (ko / en) | en — Für koreanischen Betrieb ko |
PP_TZ | Plattform-Zeitzone | Asia/Seoul |
DOCKER_PP_CPUS | Anzahl der vCPUs für Container | Ergebnis von nproc (Automatisch) |
DOCKER_PP_MEMORY | Memory Limit | 90% des Host-RAM (Automatisch) |
DOCKER_DATALAKE_MEMORY | Data Lake Memory Limit | 96G (Minimum), nicht über 90% des Host-RAM — Host unter 107G ist unterdimensioniert |
DOCKER_PP_DATA_DISK_NAME | Name der Datendisk | Automatische Rückverfolgung (bei Fehler sda) |
DOCKER_PP_EXTERNAL_IP | Externe Advertise IP in NAT-Umgebungen | Leerwert — Leer lassen, wenn kein NAT vorliegt |
DOCKER_PP_EXTERNAL_IP nicht leichtfertig ausDieser Wert fließt in die SAN-Liste des TLS-Zertifikats ein. Bei einer ungültigen IP wird kein einziges Zertifikat erstellt, wodurch der Stack nicht starten kann.
Das Standard-Locale ist en. Für einen koreanischen Betrieb tragen Sie PP_LANG=ko in den Sidecar ein und wenden dies mit ./restart.sh an. Da Zeitreihendaten auf Basis von KST geladen werden, behalten Sie im koreanischen Betrieb PP_TZ als Asia/Seoul bei.
Die vollständige Liste der Umgebungsvariablen finden Sie in der Referenz der Umgebungsvariablen.
Häufig verwendete Betriebsbefehle
cd /opt/kopens/plantpulse-platform-docker/bin
./preflight.sh # 설치 전 비파괴 사전 점검
./up.sh # 기동 — 준비될 때까지 대기 (0 = 준비 완료)
./down.sh # 정지 (상태 보존)
./restart.sh # graceful 재시작 (drain + 준비 대기)
./status.sh # 서비스 / health / 볼륨 요약 (0=정상 / 2=비정상)
./logs.sh [서비스] # 로그 보기 (1회 출력, -f 로 따라가기). 인자가 없으면 전체, 목록은 --list
./shell.sh [서비스] # 컨테이너 bash 진입 (인자 없으면 데이터레이크)
./ops-check.sh # 운영 health + 최근 critical log 점검
./remove.sh # 컨테이너 제거 (볼륨은 보존)
./doctor.sh # 장애 진단 tarball 생성
Führen Sie diesen Einzeiler erneut aus, wenn Sie eine neue Version installieren möchten — Upgrade. Alle Verben unterstützen --help. Alte Bezeichnungen(stack-run.sh · stack-stop.sh · stack-bash.sh · stack-update.sh · stack-remove.sh) funktionieren weiterhin.
Problemlösung
Fehler beim Ausführen des Download-Skripts
# 다운로드 서버 접근 가능 여부 확인
curl -fsSL https://product.kopens.io/plantpulse-platform/install.sh -o /tmp/install.sh
ls -al /tmp/install.sh
# 회사 방화벽 / 프록시로 차단된 경우 네트워크 관리자에게 도메인 허용 요청:
# product.kopens.io, docker.kopens.io
Container wechselt nicht in den Status «healthy»
Grenzen Sie zuerst ein, welcher Container das Problem verursacht.
cd /opt/kopens/plantpulse-platform-docker/bin
./status.sh # 어떤 서비스가 비정상인가
./logs.sh --list # 볼 수 있는 서비스 목록
./logs.sh plantpulse-server-web -n 200 # 그 컨테이너의 로그
./doctor.sh # 진단 tarball 생성 후 기술 지원팀에 전달 (모든 컨테이너를 담습니다)
Es liegt wahrscheinlich ein Fehler bei der Aster TSDB Schema-Migration oder ein Problem mit den /data1/pp-data-Berechtigungen vor. Detaillierte Schritte finden Sie unter Docker-Installation — Wenn der Stack nicht startet.
Weitere Anfragen
Prüfen Sie bei weiteren Problemen zuerst den Abschnitt zur Problemlösung auf der Seite Docker-Installation. Falls das Problem nicht gelöst werden kann, wenden Sie sich bitte an webmaster@kopens.com.