Zum Hauptinhalt springen

Binärinstallation

Die aktuelle Version unterstützt keine Binär- (native) Installation

Das aktuelle Auslieferungspaket ist ein einziger Docker Compose Stack — bestehend aus einem einmaligen Zertifikatslauf, einem Data Lake, sechs Apps und einem Proxy (Aufbau der Installation).

Diese Seite ist für Anwender erhalten, die ein bestehendes, per Binärinstallation aufgebautes System weiter betreiben. Für Neuaufbauten verwenden Sie bitte die One-Line-Installation oder die Docker-Installation.

Zudem wurde der folgende Inhalt vor der Umstellung auf Container verfasst, sodass er an manchen Stellen vom aktuellen Produktstand abweichen kann. Bei Problemen in der Binärumgebung wenden Sie sich bitte an webmaster@kopens.com.

Überblick

Diese Seite beschreibt das Verfahren zur Binär- (native) Installation der PlantPulse Platform direkt auf dem Betriebssystem. Nach dem Entpacken des tar.gz-Pakets werden mit einem einzigen Setup-Skript sämtliche OS-Abhängigkeiten, die Infrastruktur und die Anwendungen konfiguriert.

Für eine Installation mit Trennung von Data Lake und Anwendung auf 2 Knoten (PP_TIER) siehe 2-Knoten-Split-Installation. Dieses Dokument bezieht sich auf die Binärinstallation als Single-Box (FULL).

Vergleich der Installationsarten

PunktBinärinstallationOne-Line- / Docker-Installation
Installationsdauer20–40 Minuten10–20 Minuten
UmgebungsabhängigkeitPakete werden auf dem Host-OS installiertAlles im Container enthalten
RessourcenisolierungGemeinsam mit dem HostIsoliert im Container
Updatetar.gz neu ausrollen + configureupdate.sh eine Zeile
RollbackManuelle Wiederherstellung aus BackupAutomatisches Rollback auf vorheriges Image
Air-Gap-NetzwerkUnterstützt setup-offline.shUnterstützt airgap-load.sh
Host-OSDirekt betroffenKaum betroffen

Unterstützte Umgebungen

OSVersionVerifiziert
Oracle Linux8.x, 9.x
RHEL / Rocky Linux8.x, 9.x
Amazon Linux2, 2023
Ubuntu22.04+

Empfohlene Hardware-Spezifikationen

KategorieMinimumStandardGroßanlage
CPU16 vCPU32 vCPU48+ vCPU
Arbeitsspeicher64GB128GB200GB+
Datenfestplatte200GB1TB4TB+
Festplatten-IOPSNVMe SSD empfohlenNVMe SSDNVMe SSD
Netzwerk1Gbps10Gbps10Gbps

Verifizierte Umgebung (Referenz): Die betrieblich verifizierte Umgebung läuft mit 48 vCPU / 188GB RAM / 4,8TB NVMe SSD, RHEL 9 / Temurin OpenJDK 21 LTS.

Übersicht des Installationsverfahrens

1. Vorbereitung

1.1 root-Berechtigung sicherstellen

Die Installation erfolgt mit root Berechtigung. Für den Betrieb mit einem Nicht-root-Benutzer ist nach Abschluss der Installation ein separates Verfahren zur Rechtentrennung erforderlich (bitte an das Betriebsteam wenden).

sudo -i

1.2 Datenfestplatte einbinden

Für große Mengen von Zeitreihen-Daten binden Sie bitte eine separate Festplatte unter /data1 ein.

# 사용 가능한 디스크 확인
lsblk

# 예: /dev/sdb 를 ext4 로 포맷 후 /data1 에 마운트
mkfs.ext4 /dev/sdb
mkdir -p /data1
mount /dev/sdb /data1

# 부팅 시 자동 마운트
echo "/dev/sdb /data1 ext4 defaults 0 0" >> /etc/fstab

Empfehlung zur Festplattentrennung: Wenn OS-Festplatte und Datenfestplatte getrennt werden, sind Backup, Erweiterung und Fehlerisolierung einfacher. Auch bei kleinen Umgebungen empfiehlt sich möglichst eine Konfiguration mit separater Festplatte / separatem LV.

1.3 Zeitsynchronisation

Verteilte Komponenten (Cassandra, Kafka usw.) sind empfindlich gegenüber der Zeitgenauigkeit zwischen den Knoten. NTP-Synchronisation ist verpflichtend.

# RHEL 계열
dnf install -y chrony
systemctl enable --now chronyd
chronyc tracking

1.4 SELinux / Firewall

setup.sh schaltet SELinux automatisch auf permissive und öffnet die erforderlichen Firewall-Ports. Für unternehmens- bzw. cloudseitige übergeordnete Firewalls fügen Sie bitte separat Freigaberegeln gemäß der Seite Portkonfiguration hinzu.

2. Paket herunterladen und entpacken

Platzieren Sie das vom KOPENS-Betriebsteam bereitgestellte plantpulse-platform-YYYY.MM.tgz-Paket unter /opt/kopens/.

mkdir -p /opt/kopens
cd /opt/kopens

# scp 또는 USB / 내부 미러로 패키지 이전
# 예시: scp 로 받은 파일을 풀기
tar -xzvf plantpulse-platform-2026.05.tgz

# 결과 디렉토리 확인
ls /opt/kopens/plantpulse-platform/

Nach dem Entpacken entsteht folgende Struktur.

/opt/kopens/plantpulse-platform/
├── plantpulse-startup/ # 모든 운영 스크립트 + startup.jar
│ ├── env.sh # 전역 환경 변수 (★ 검토 필요)
│ ├── start.sh / stop.sh # 시작 / 정지
│ ├── start-daemon.sh # 데몬 모드 시작
│ ├── restart.sh # stop → clean → start-daemon
│ ├── status.sh # 포트 기반 상태 점검
│ ├── configure.sh # 템플릿 → 실제 설정 생성
│ ├── prepare-ssl.sh # TLS 인증서 생성
│ ├── restart-*.sh # 모듈별 재시작
│ ├── node-*.sh # Cassandra 운영
│ ├── log-viewer.sh # 통합 로그 뷰어
│ └── ...
├── plantpulse-server/ # 웹 콘솔 (Tomcat 기반)
├── plantpulse-batch/ # 배치 처리
├── plantpulse-cep/ # 복합 이벤트 처리
├── plantpulse-data-gateway/ # 데이터 게이트웨이
├── plantpulse-sql/ # SQL 쿼리 서비스
├── plantpulse-monitor/ # 모니터링
├── plantpulse-warehouse/ # 데이터 웨어하우스
├── plantpulse-plugin/ # OPC-UA / AAS 산업 플러그인
├── plantpulse-storage/ # Cassandra / PostgreSQL / Valkey / MinIO
├── plantpulse-messaging/ # Kafka / MQTT(HiveMQ) / STOMP(ActiveMQ)
├── plantpulse-analytics/ # Spark / Hive / Kyuubi / Gravitino / Hadoop
├── plantpulse-workflow/ # Temporal / Kestra
├── plantpulse-timeseries/ # 시계열 엔진 + UI
├── tools/ # OS 의존성 / JDK / DB 클라이언트 / 설정 템플릿
│ ├── setup.sh # 온라인 셋업
│ ├── setup-offline.sh # 폐쇄망 셋업
│ ├── java/ # OpenJDK
│ ├── postgresql/ # psql 클라이언트
│ ├── valkey/ # redis-cli
│ ├── cron/ firewall/ ssl/ swap/ ntp/ ...
│ └── ...
├── offline/ # 폐쇄망 설치 리소스 (RPM 리포 + wheels)
└── backup/ # 자체 백업 디렉토리

3. Setup-Skript ausführen

tools/setup.sh erledigt in einem Durchgang die Installation der OS-Pakete, die JDK-Installation, die Erstellung der Datenverzeichnisse sowie Firewall / SELinux / NTP / limits / sysctl.

cd /opt/kopens/plantpulse-platform/tools
./setup.sh

Interaktive Eingaben beim Setup

setup.sh fragt nach folgenden Angaben.

PunktBeschreibungBeispiel
KnotenmodusMASTER (Single/Cluster-Master) oder WORKERMASTER
HOST IPInterne IP des Servers192.168.0.41
SERVICE IPIP oder Domain für externen Zugriff192.168.0.41
MASTER IP (nur WORKER)IP des Master-Knotens192.168.0.41
Name der DatenfestplatteGemäß Ausgabe von lsblksdb
DatenwurzelpfadVerzeichnis zur Datenspeicherung/data1

Vom Setup automatisch durchgeführte Aufgaben

Ausführungsdauer: Beim ersten Durchlauf dauert es ca. 15–30 Minuten (inklusive OS-Update + Paketinstallation + Installation der Infrastrukturkomponenten).

4. Umgebungsvariablen konfigurieren (Überschreiben via env.local.sh)

/opt/kopens/plantpulse-platform/plantpulse-startup/env.sh ist die einzige zentrale Konfigurationsquelle (Referenz der Standardwerte) für die gesamte Plattform. Die Vorlagen-Konfigurationsdateien aller Module werden anhand dieser Werte erzeugt.

Die vollständige Liste der PP_*-Variablen (Standardwerte und Beschreibungen) ist kategorisiert in der Referenz der Umgebungsvariablen aufgeführt.

⚠️ Ändern Sie env.sh nicht direkt. Serverspezifische Werte (maschinenspezifische Werte wie IP, Ressourcen, Passwörter) werden in der im gleichen Verzeichnis liegenden env.local.sh eingetragen. Bei der Binärinstallation ist dies das vorgesehene Verfahren.

PunktDocker-InstallationBinärinstallation (diese Seite)
KonfigurationsdateiUmgebungsvariable DOCKER_PP_* in bin/env.sh direkt bearbeitenÜberschreibung in plantpulse-startup/env.local.sh eintragen
Erhalt des OriginalsDa das Original von env.sh unverändert bleibt, ist es bei Updates sicher

Warum env.local.sh?

env.sh liest ganz oben zuerst env.local.sh ein. Da alle Variablen in env.sh die Form ${PP_XXX:-기본값} haben, gewinnt ein in env.local.sh deklarierter Wert export PP_XXX=... stets gegenüber dem Standardwert.

  • env.local.sh ist nicht in git enthalten und wird auch bei Plattform-Updates (erneutes Ausrollen des tar.gz) nicht überschrieben. → Einmal geschrieben, bleibt die Konfiguration auch nach dem Update erhalten.
  • Umgekehrt: Wenn env.sh direkt geändert wird, wird sie beim Update durch ein neues env.sh ersetzt, und die Änderungen gehen verloren.

env.local.sh erstellen

Falls die Datei nicht existiert, kann sie neu angelegt werden. Schreiben Sie nur die zu ändernden Variablen im Format export.

cd /opt/kopens/plantpulse-platform/plantpulse-startup
vi env.local.sh
#!/bin/bash
# env.local.sh — 이 서버 전용 오버라이드 (env.sh 가 먼저 source 하여 우선 적용)
# 여기에 적은 값만 기본값을 덮어씁니다. 적지 않은 변수는 env.sh 기본값을 그대로 사용합니다.

export PP_HOST_IP="192.168.0.41" # 서버 내부 IP (hostname -I)
export PP_SERVICE_IP="192.168.0.41" # 브라우저 접속 IP/도메인 (단일 서버면 HOST_IP 와 동일)
export PP_MASTER_IP="192.168.0.41" # 마스터 IP (단일 서버면 HOST_IP 와 동일)
export PP_DATA_DISK_NAME="sdb" # 데이터 디스크 이름 (lsblk)
export PP_DATA_DIR="/data1/pp-data" # 데이터 저장 경로

export PP_CLUSTER_CORES="30" # 분산 분석에 할당할 코어 (아래 4.1 사이징표 참고)
export PP_CLUSTER_MEMORY_BY_CORE="2G" # 코어당 메모리

Nach dem Speichern unbedingt ./configure.sh erneut ausführen, damit die neuen Werte in die Konfiguration der einzelnen Module übernommen werden (Schritt 5). Bei jeder Änderung gehören env.local.sh bearbeiten → ./configure.sh zusammen.

4.1 Unbedingt zu prüfende Schlüsselvariablen

KategorieVariableBeschreibungStandardwert
PlatformPP_HOMEInstallationspfad/opt/kopens/plantpulse-platform
PP_MODEKnotenmodusMASTER / WORKER
NetworkPP_HOST_IPInterne IP des Servers192.168.0.41
PP_SERVICE_IPExterne Zugriffs-IP192.168.0.41
PP_MASTER_IPMaster-IP192.168.0.41
PP_PUBLIC_IPÖffentlich exponierte IP (NAT)${PP_HOST_IP}
DataPP_DATA_DIRPfad zur Datenspeicherung/data1/pp-data
PP_TEMP_DIRPfad für temporäre Dateien/data1/pp-temp
PP_BACKUP_DIRBackup-Pfad/data1/pp-backup
ResourcesPP_CLUSTER_CORESFür verteilte Analyse zuzuweisende Kerne30
PP_CLUSTER_MEMORY_BY_CORESpeicher pro Kern2G
LocalePP_LANGLocale (ko / en)en
PP_TZZeitzoneAsia/Seoul

Die obige Tabelle ist eine Referenz für Variablennamen und Standardwerte. Die tatsächlich zu ändernden Werte werden, wie zu Beginn von Schritt 4 beschrieben, in env.local.sh im Format export eingetragen (env.sh direkte Bearbeitung ✗). HOST IP / SERVICE IP / Festplattenname, die beim Setup in Schritt 3 eingegeben wurden, sind bereits übernommen; dieser Schritt dient dazu, diese Werte zu überprüfen und nur fehlende Angaben in env.local.sh zu ergänzen.

Wie ermittelt man die Werte? (verwirrende Punkte)

# IP 확인 (PP_HOST_IP / PP_SERVICE_IP)
hostname -I | awk '{print $1}' # 서버 내부 IP
ip -4 addr | grep inet # 외부 접속용 IP를 따로 골라야 할 때

# 데이터 디스크 / 코어 / 메모리
lsblk # 데이터 디스크명 (sdb, nvme0n1 …)
nproc # 전체 CPU 코어 수
free -g | awk '/^Mem:/{print $2"G"}' # 전체 메모리
  • PP_HOST_IP = interne IP, unter der der Server innerhalb desselben Netzwerks erreichbar ist. Bei einem Single-Server können PP_SERVICE_IP und PP_MASTER_IP denselben Wert erhalten.
  • PP_SERVICE_IP = IP/Domain, über die Benutzer per Browser zugreifen. Bei NAT/Cloud tragen Sie zusätzlich die öffentlich exponierte IP unter PP_PUBLIC_IP ein.

Sizing der Ressourcen für verteilte Analyse (PP_CLUSTER_CORES / PP_CLUSTER_MEMORY_BY_CORE)

Diese beiden Werte sind die für verteilte Analysen (z. B. Spark) zugewiesenen Ressourcen. Weisen Sie nicht den gesamten Host zu, sondern reservieren Sie Anteile für Storage, Messaging und Webserver (empfohlen: 60–70 % der Gesamtkapazität).

ServerspezifikationPP_CLUSTER_CORESPP_CLUSTER_MEMORY_BY_COREGesamter für Analyse genutzter Speicher
16 Kerne / 64GB102G20GB
32 Kerne / 128GB203G60GB
48 Kerne / 188GB304G120GB

코어 수 × 코어당 메모리 ist die Gesamtmenge des von der Analyse belegten Speichers. Stellen Sie sicher, dass diese Summe die Gesamtkapazität des Servers nicht übersteigt (mindestens 30 % Reserve). Wird sie überschritten, kommt es beim Start zu OOM.

4.2 Passwörter der Service-Konten

In der Produktionsumgebung müssen folgende Standardpasswörter unbedingt geändert werden.

# env.local.sh 안에 추가
export PP_REDIS_PASSWORD=$(openssl rand -base64 18)
export PP_CASSANDRA_PASSWORD=$(openssl rand -base64 18)
export PP_PG_PASSWORD=$(openssl rand -base64 18)
export PP_MQ_PASSWORD=$(openssl rand -base64 18)
export PP_HIVE_PASSWORD=$(openssl rand -base64 18)
export PP_MINIO_PASSWORD=$(openssl rand -base64 18)
export PP_TEMPORAL_PASSWORD=$(openssl rand -base64 18)
export PP_TLS_KEYSTORE_PASSWORD=$(openssl rand -base64 18)

Empfehlung: Speichern Sie geänderte Passwörter in einem betrieblichen Vault (HashiCorp Vault, AWS Secrets Manager usw.) und injizieren Sie sie über umgebungsspezifische Overrides in env.local.sh.

4.3 TLS/SSL-Konfiguration

# env.local.sh 안에 추가
export PP_TLS_ENABLED=true
export PP_TLS_DOMAIN=plantpulse.io
export PP_TLS_SAN_DNS="localhost,$(hostname -f),plantpulse.io,plantpulse.kopens.com"
export PP_TLS_SAN_IPS="${PP_HOST_IP},${PP_SERVICE_IP},${PP_PUBLIC_IP},127.0.0.1,192.168.0.10"
export PP_TLS_VALID_DAYS=730

Externe Expositions-IPs hinzufügen: In NAT-/Cloud-Umgebungen müssen externe IP/Domain in PP_TLS_SAN_DNS / PP_TLS_SAN_IPS angegeben werden, damit die Client-Zertifikatsprüfung erfolgreich verläuft.

4.4 Überprüfung und Zurücksetzen

cd /opt/kopens/plantpulse-platform/plantpulse-startup

./env-validate.sh # env.sh + env.local.sh 최종 변수 정합성 검증
./env-reset.sh # env.local.sh 변경 후 템플릿 재생성이 필요할 때

env-validate.sh überprüft die Endwerte, bei denen die Überschreibung von env.local.sh angewendet wurde. Damit können Sie nach dem Erstellen von env.local.sh mit diesem Skript prüfen, ob IP, Pfade und Passwörter wie beabsichtigt gesetzt wurden.

5. Anwendung der Vorlagenkonfiguration (configure.sh)

Die Endwerte aus env.sh (+ Überschreibung von env.local.sh) werden gesammelt auf die Konfigurationsdateien aller Module angewendet.

cd /opt/kopens/plantpulse-platform/plantpulse-startup
./configure.sh

configure.sh ruft intern startup.jar CONFIGURE auf und führt Folgendes aus:

  1. Alle Konfigurationsvorlagen (*.template) im Verzeichnis template/ scannen
  2. Platzhalter (z. B. ${PP_HOST_IP}, ${PP_CASSANDRA_PASSWORD}) mit den Variablen aus env.sh ersetzen
  3. An der tatsächlichen Konfigurationsdatei-Position speichern — bei Webanwendungsdiensten (server / batch / cep / sql / data-gateway) jeweils in config/ des Moduls, bei Infrastrukturmodulen in conf/, etc/ usw.

Da die Konfiguration der Webanwendungsdienste in das Modul config/ externalisiert ist, geht die Konfiguration auch bei einer erneuten Bereitstellung der Webanwendung (WAR) nicht verloren.

Erneutes Ausführen nach Änderung erforderlich: Bei jeder Änderung von env.local.sh muss ./configure.sh erneut ausgeführt werden, damit die neuen Werte in die Module übernommen werden.

6. TLS-Zertifikate vorbereiten (prepare-ssl.sh)

Im Fall von PP_TLS_ENABLED=true werden die Zertifikate vor dem ersten Start erzeugt.

cd /opt/kopens/plantpulse-platform/plantpulse-startup
./prepare-ssl.sh
  • Erzeugung selbstsignierter Zertifikate (ECDSA secp256r1)
  • Erzeugung von Keystore / Truststore (/var/security/plantpulse/)
  • Separate Erzeugung von Zertifikaten für OPC-UA / Kafka / MQTT / Cassandra / Web
  • Für die Verwendung externer CA-Zertifikate siehe Seite Sicherheitskonfiguration

7. Plattform starten

7.1 Start im Vordergrund (erste Überprüfung)

Nach der Erstinstallation empfiehlt es sich, die Startprotokolle direkt zu beobachten.

/opt/kopens/plantpulse-platform/plantpulse-startup/start.sh

7.2 Start im Hintergrund (Betriebsmodus)

In der Produktionsumgebung erfolgt der Start im Daemon-Modus. Die Plattform läuft auch weiter, wenn das Terminal geschlossen wird.

/opt/kopens/plantpulse-platform/plantpulse-startup/start-daemon.sh

7.3 Startreihenfolge

startup.jar startet die Komponenten schrittweise gemäß der Abhängigkeitsreihenfolge.

Da automatisch bis zum Abschluss jeder Stufe gewartet wird, ist kein zusätzlicher Eingriff nötig. Der gesamte Startvorgang dauert 3–5 Minuten.

7.4 Normale Startmeldung

═══════════════════════════════════════════════════════════════════
____ _ _ ____ _
| _ \| | __ _ _ __ | |_| _ \ _ _| |___ ___
| |_) | |/ _` | '_ \| __| |_) | | | | / __|/ _ \
| __/| | (_| | | | | |_| __/| |_| | \__ \ __/
|_| |_|\__,_|_| |_|\__|_| \__,_|_|___/\___|
PLATFORM
═══════════════════════════════════════════════════════════════════
● Status STARTING [DAEMON]
● Host ...
● URLs https://... (web)
═══════════════════════════════════════════════════════════════════
...
플랜트펄스 플랫폼이 정상적으로 시작되었습니다.

8. Installation überprüfen

8.1 Servicestatus prüfen

/opt/kopens/plantpulse-platform/plantpulse-startup/status.sh

Jedes Modul wird mit dem Status RUNNING angezeigt, zusammen mit einer Zusammenfassung der Systemressourcennutzung (CPU / Memory PSS / Disk).

=============================================================================================================
PLANTPULSE PLATFORM - ALL SERVICE STATUS
=============================================================================================================

<SYSTEM RESOURCE OVERVIEW>
--------------------------------------------------------------------------------------------------------------
CPU LOAD (AVG) : 12.3% (48 cores)
MEMORY USAGE : 65.2% (123.1G / 188.7G)
DATA DISK USAGE : 45.8% (2.2T / 4.8T)
--------------------------------------------------------------------------------------------------------------

<SERVICE STATUS BY PORT>
SERVICE | PORT | STATUS | PID | CPU | MEMORY (PSS) | PROCESS
PP_MESSAGING[KAFKA] | 9092 | RUNNING | 12345 | 2.3% | 8.5G ( 4.51%) | java
PP_STORAGE[CASSANDRA] | 9042 | RUNNING | 12567 | 5.1% | 16.2G ( 8.59%) | java
PP_SERVER | 80 | RUNNING | 12890 | 1.2% | 4.8G ( 2.55%) | java
...

8.2 Zugriff auf die Webkonsole

Rufen Sie im Browser folgende Adresse auf.

URLZweck
http://[SERVICE_IP]/Betriebskonsole (Port 80)
https://[SERVICE_IP]/Betriebskonsole (Port 443, TLS)
https://[SERVICE_IP]:7443/Verwaltungskonsole (separater Port)
  • Standard-Administratorkonto: admin / admin123!
  • Ändern Sie das Passwort bitte unmittelbar nach dem Login.

8.3 Health-Check-Endpunkt

Wird bei der Anbindung an externe Monitoring-Systeme verwendet.

# 컨테이너 / 프로세스 헬스
curl -kfsS https://127.0.0.1:4950/api/health | jq

# 모니터 모듈
curl -fsS http://127.0.0.1:4949/health

Zusammenfassung der Betriebsbefehle

cd /opt/kopens/plantpulse-platform/plantpulse-startup

./start.sh # 포그라운드 시작
./start-daemon.sh # 백그라운드 시작
./stop.sh # 정지
./restart.sh # stop → clean → start-daemon
./status.sh # 전체 모듈 상태
./log-viewer.sh # 통합 로그 뷰어
./log-delete.sh # 오래된 로그 정리
./clean.sh # 임시 파일 정리 (정지 후)
./kill.sh # 강제 종료 (응답 없을 때)

# 모듈별 재시작
./restart-server.sh # 웹 서버
./restart-storage.sh # 스토리지
./restart-analytics.sh # 분석
./restart-messaging.sh # 메시징
./restart-timeseries.sh # 시계열
./restart-workflow.sh # 워크플로우
./restart-cep.sh # CEP
./restart-data-gateway.sh # 데이터 게이트웨이
./restart-monitor.sh # 모니터
./restart-batch.sh # 배치
./restart-warehouse.sh # 웨어하우스
./restart-plugin.sh # 플러그인
./restart-opcua-server.sh # OPC-UA
./restart-aasx-server.sh # AAS

# Cassandra 운영
./node-status.sh # 클러스터 상태
./node-info.sh # 노드 상세
./node-cql.sh # CQL 셸
./node-compact.sh # 수동 컴팩션
./node-cleanup.sh # 노드 정리
./node-repair.sh # 데이터 복구

Detaillierte Betriebsverfahren finden Sie auf den Seiten Startanleitung und Betriebsverwaltung.

Air-Gap-Installation

In Umgebungen ohne Internetzugang erfolgt die Installation nach folgendem Verfahren.

Bundle auf dem Build-Knoten (mit Internetzugang) erzeugen

cd /opt/kopens/plantpulse-platform/offline
./prepare-offline.sh
# 산출물: /offline-install/kopens-offline.tar.gz

Das Bundle enthält Folgendes:

  • Das vollständige Verzeichnis /opt/kopens/plantpulse-platform/
  • Erforderliche RPMs (offline/repos/rpm/ + repodata/)
  • Python-Wheels (offline/repos/python-wheels/)
  • JDK / Infrastrukturpakete (unter tools/)

Übertragung zum Knoten im Air-Gap-Netzwerk

Übertragen Sie kopens-offline.tar.gz per USB / internen Dateiserver / scp usw.

Installation auf dem Knoten im Air-Gap-Netzwerk

mkdir -p /opt/kopens
tar -xzvf /path/to/kopens-offline.tar.gz -C /opt/kopens/

cd /opt/kopens/plantpulse-platform/tools
./setup-offline.sh

# 환경 변수 작성 및 시작 (env.sh 직접수정 ✗ → env.local.sh 에 오버라이드)
cd /opt/kopens/plantpulse-platform/plantpulse-startup
vi env.local.sh
./configure.sh
./start-daemon.sh
./status.sh

setup-offline.sh installiert die OS-Abhängigkeiten ausschließlich über das lokale RPM-Repository und stellt die Infrastrukturkomponenten bereit.

Update

Kleinere Updates (Konfiguration / Patches)

cd /opt/kopens/plantpulse-platform/plantpulse-startup
./stop.sh

# 패치 파일 적용 (운영팀이 안내한 절차에 따라)
cp -r /tmp/patch/* /opt/kopens/plantpulse-platform/

./configure.sh
./start-daemon.sh
./status.sh

Größere Updates (vollständige Neubereitstellung)

# 1. 현재 데이터 / 설정 백업
./stop.sh
cp -a /opt/kopens/plantpulse-platform /opt/kopens/plantpulse-platform.bak-$(date +%Y%m%d)
tar -czf /data1/pp-backup/pre-update-$(date +%Y%m%d).tar.gz /data1/pp-data /data1/pp-backup

# 2. 새 tar.gz 풀기 (env.local.sh / 데이터는 보존)
# 설정값은 env.local.sh 에 있으므로 그 파일만 보존하면 됩니다.
# env.sh 는 새 버전으로 갱신되어도 무방합니다(기본값 정본).
cd /opt/kopens
tar -xzvf plantpulse-platform-NEW.tgz --exclude='plantpulse-platform/plantpulse-startup/env.local.sh'

# 3. 재구성 및 시작
cd /opt/kopens/plantpulse-platform/plantpulse-startup
./configure.sh
./start-daemon.sh

# 4. 문제 시 롤백
./stop.sh
rm -rf /opt/kopens/plantpulse-platform
mv /opt/kopens/plantpulse-platform.bak-YYYYMMDD /opt/kopens/plantpulse-platform
cd /opt/kopens/plantpulse-platform/plantpulse-startup
./start-daemon.sh

Datenschutz: Führen Sie vor einem größeren Update unbedingt ein vollständiges Backup von /data1/pp-data und /data1/pp-backup durch und bewahren Sie es auf einer separaten Festplatte / externem Speicher auf.

Wichtigste Fehlerbehebung

SymptomErste Maßnahme
Einige Module nach dem Start STOPPEDMit ./status.sh prüfen, welches Modul betroffen ist, dann ./restart-<module>.sh
Speichermangel / OOMKilledenv.local.sh/PP_CLUSTER_CORES und PP_CLUSTER_MEMORY_BY_CORE anpassen, dann ./configure.sh
PortkonfliktBelegten Prozess mit ss -tlnp prüfen und beenden, oder Port in env.local.sh ändern, dann ./configure.sh
Speicherplatzmangelnode-cleanup.sh / node-compact.sh oder alte Backups bereinigen
Kein Start möglich./log-viewer.sh oder tail -F /var/log/plantpulse-startup.log
Zwangsbeendigung erforderlich./kill.sh (letztes Mittel — Risiko von Datenverlust)

Ausführliche Diagnoseverfahren finden Sie auf der Seite Fehlerbehebung.

Nächste Schritte

Technischer Support

Wenn Sie während der Installation Unterstützung benötigen, wenden Sie sich bitte an webmaster@kopens.com. Wenn Sie zusätzlich einen Screenshot von ./log-viewer.sh oder das Prüfergebnis von /opt/kopens/plantpulse-platform/plantpulse-startup/test/ mitschicken, ist eine schnellere Analyse möglich.