Installation im Air-Gap-Netzwerk
Dies ist das Verfahren für die Installation des Gateway an Standorten ohne Internetzugang (Militäranlagen, Hochsicherheitsbereiche, bestimmte Fabriken).
Da die Standard-One-Line-Installation den Zugriff auf product.kopens.io erfordert, was in einem Air-Gap-Netzwerk nicht möglich ist, müssen die Artefakte von extern bezogen, per USB oder NAS übertragen und anschließend installiert werden.
Container-Modus (ab 2026.05, empfohlen)
Übertragen Sie sowohl das install-Paket als auch das Container-Image als tar.zst. Wenn install.sh das Sibling-Verzeichnis image/*.tar.zst erkennt, erfolgt ein automatischer Import in docker load (Umgehung des Registry-Pulls).
Vorbereitungs-PC (mit Internetzugang)
Erstellen Sie das Export-Bundle nicht manuell, sondern bauen Sie es mit airgap-bundle.sh. Da Repository-Dateien und Container-Images als eine Einheit gebündelt werden, gibt es keine Versionskonflikte. In GitLab können Sie alternativ den manuellen Job airgap:export ausführen und die Artefakte herunterladen.
# 1) 저장소 받기
curl -fsSLO https://product.kopens.io/plantpulse-edge/plantpulse-edge-docker.tar.gz
mkdir -p plantpulse-edge-docker
tar xzf plantpulse-edge-docker.tar.gz -C plantpulse-edge-docker --strip-components=1
# 2) 반출 번들 굽기 — 저장소 + 이미지가 함께 들어간다
sudo bash plantpulse-edge-docker/bin/airgap-bundle.sh
# 3) USB / NAS 로 옮김 (파일명 예: plantpulse-edge-images-2026.07.tar.gz)
cp plantpulse-edge-images-*.tar.gz /media/usb/
Air-Gap-Box (ohne Internetzugang)
sudo -i
mkdir -p /opt/kopens/plantpulse-edge-docker
tar xzf /media/usb/plantpulse-edge-images-*.tar.gz \
-C /opt/kopens/plantpulse-edge-docker --strip-components=1
cd /opt/kopens/plantpulse-edge-docker/repo/bin
# 필요하면 env.sh 에서 EDGE_ID / SITE_ID 를 박스별로 조정한 뒤 실행
sudo bash airgap-load.sh
# airgap-load.sh: 오프라인 Docker 설치 → 이미지 docker load → install.sh(SKIP_PULL=1)
Überprüfung nach der Installation im Container-Modus:
sudo bash /opt/kopens/install/bin/status.sh
sudo bash /opt/kopens/install/bin/health.sh
curl -ks https://127.0.0.1/api/v1/system/version | python3 -m json.tool
curl -ks https://127.0.0.1/api/v1/system/health | python3 -m json.tool
Auch Upgrades nach der Installation erfolgen ohne Internet — bringen Sie neue Image-Dateien ein und führen Sie pe upgrade --bundle aus (Upgrade im Air-Gap-Netzwerk).
Die Kriterien für den Abschluss der Installation sind auch im Air-Gap-Netzwerk identisch. Vor der Inbetriebnahme müssen gemäß den Produktionsabnahmekriterien Sicherungsdateien, das Acceptance-Log, der Image-Tag und der Status der Übergabe von Anmeldedaten dokumentiert werden.
Häufige Fehlerquellen
| Symptom | Ursache / Lösung |
|---|---|
tar: Error opening archive | Image auf dem USB-Stick nur teilweise kopiert. sha256 auf dem Vorbereitungs-PC vergleichen und erneut kopieren |
docker load meldet «no space left» | Unzureichender Speicherplatz in /var/lib/docker. Halten Sie mindestens das Zweifache der Image-Größe frei |
Dienst stoppt bei activating | Ein Modul verzögert den Start. Prüfen Sie mit journalctl -u plantpulse-edge -f und bin/logs.sh, um welches Modul es sich handelt |
| Zeit falsch (Jahr 1970) | Kein NTP-Zugriff im Air-Gap-Netzwerk. Interne NTP-Server-IP zu /etc/chrony.conf hinzufügen |
install.sh ruft externe URL auf | Offline-Argument wurde vergessen. Verwenden Sie exakt die Befehle aus dem oben beschriebenen Air-Gap-Verfahren |
| Symptom | Ursache / Lösung |
|---|---|
dnf install stoppt, da Internet nicht gefunden | Option --disablerepo=* fehlt. Verwenden Sie die Optionen aus Abschnitt 3.1 |
tar: Error opening archive | Artefakte auf dem USB-Stick nur teilweise kopiert. sha256 auf dem Vorbereitungs-PC vergleichen und erneut kopieren |
| systemctl status plantpulse → activating | Blockierung in einem der Schritte von bin/start.sh. Live-Prüfung mit journalctl -u plantpulse -f |
| Zeit falsch (Jahr 1970) | Kein NTP-Zugriff im Air-Gap-Netzwerk. Interne NTP-Server-IP zu /etc/chrony.conf hinzufügen |
| install.sh ruft Download-URL auf | Änderung an sed fehlgeschlagen — alle URLs in install.sh müssen auf file:///mnt/usb/... gesetzt werden |
Weiterführende Informationen
- Standardverfahren bei Internetzugang: One-Line-Installation
- Produktionsabnahmekriterien: Produktionsabnahmekriterien
- Wiederherstellung aus Backup (Desaster Recovery): Backup und Wiederherstellung
- Anwenden neuer Versionen (mit Internet): Upgrade (
upgrade.sh)