Zum Hauptinhalt springen

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.

KonfigurationAnzahl ServerEmpfohlene SituationLeitfaden
Single-Box (FULL) — Standard1 Server (Empfohlen 256GB, Min. 128GB)Standardkonfiguration. Folgen Sie den Schritten auf dieser SeiteDiese Seite
Air-Gap-Netzwerk (Airgap)—Umgebungen ohne InternetverbindungAir-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​

OSVersion
Oracle Linux8.x
RHEL / Rocky Linux8.x, 9.x
Ubuntu20.04+ (20 / 22 / 24)
Amazon Linux2, 2023

Voraussetzungen​

  • Server mit Internetverbindung (Zugriff auf Download-Server product.kopens.io erforderlich)
  • root Berechtigungen
  • 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
⌨️ Plattform Einzeiler-Installation — Tatsächliche Aufnahme auf einem Staging-Server

Das Skript führt automatisch folgende Schritte aus:

  1. Automatische OS-Erkennung (RHEL/Rocky/Oracle 8·9, Ubuntu 20+, Amazon Linux)
  2. Installation von Docker Engine + Compose v2 und Konfiguration des Daemons (data-root)
  3. Kernel- und Ressourcen-Tuning (limits.conf, sysctl.conf, chrony.conf, tmpfiles.d)
  4. Umstellung von SELinux auf permissive und Deaktivierung von Swap
  5. Automatisches Öffnen von Firewall-Ports — Öffentliche Ports (80/443/4949/4950) und eingeschränkte Ports für private Netzwerke
  6. Erstellung des Sidecar für Service-Anmeldedaten (/etc/kopens/plantpulse-platform.env)
  7. Anmeldung an der Container-Registry (docker.kopens.io)
  8. Erstellung von Docker-Netzwerken / Volumes und Starten des Compose-Stacks
Was zu sehen ist

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
OptionEffekt
--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 login erforderlich. 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 heruntergeladenen bin/install.sh auf 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)
Kein Fehler, wenn plantpulse-platform in docker ps fehlt

Die 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
Ändern Sie bin/env.sh nicht — diese Daten gehen bei Neuinstallation verloren

Das 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ätOrtAnmerkung
1Sidecar /etc/kopens/plantpulse-platform.envÜberschreibt die folgenden Standardwerte. Hier anpassen
2Standardwert von bin/env.shVom Produkt definierter Wert
3Explizite export-Zeilen unter bin/env.shWird zuletzt gelesen und gewinnt, geht aber bei Neuinstallation verloren

Häufig angepasste Parameter:

VariableBeschreibungStandardwert
PP_LANGPlattform-Locale (ko / en)en — Für koreanischen Betrieb ko
PP_TZPlattform-ZeitzoneAsia/Seoul
DOCKER_PP_CPUSAnzahl der vCPUs für ContainerErgebnis von nproc (Automatisch)
DOCKER_PP_MEMORYMemory Limit90% des Host-RAM (Automatisch)
DOCKER_DATALAKE_MEMORYData Lake Memory Limit96G (Minimum), nicht über 90% des Host-RAM — Host unter 107G ist unterdimensioniert
DOCKER_PP_DATA_DISK_NAMEName der DatendiskAutomatische Rückverfolgung (bei Fehler sda)
DOCKER_PP_EXTERNAL_IPExterne Advertise IP in NAT-UmgebungenLeerwert — Leer lassen, wenn kein NAT vorliegt
Füllen Sie DOCKER_PP_EXTERNAL_IP nicht leichtfertig aus

Dieser 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.