Zum Hauptinhalt springen

Upgrade

Container-Modus (2026.05+, empfohlen)

# 자동 (META-INF/VERSION.JSON 의 최신 build_date)
sudo bash /opt/kopens/install/upgrade.sh

# 특정 tag
sudo bash /opt/kopens/install/upgrade.sh --to 2026-20260601

# 직전 tag 로 rollback
sudo bash /opt/kopens/install/upgrade.sh --rollback

# 새 빌드 존재 여부만 확인
sudo bash /opt/kopens/install/upgrade.sh --check

Ablauf (automatisch):

  1. Vergleich von build_date in META-INF/VERSION.JSON
  2. pre-snapshot/data1/pp-backups/pe-backup-<ts>.tar.zst (Aufruf von backup.sh, umgehbar mit SKIP_BACKUP=1)
  3. docker pull <new-tag>
  4. /etc/kopens/version.env aktualisieren + systemctl restart
  5. /api/v1/system/health 90-Sekunden-Probe
  6. all UP → success / DEGRADED → automatischer Rollback + Hinweis auf Snapshot-Pfad

Fortschrittsstatus: cat /etc/kopens/upgrade.status — JSON (idle / running / success / rolling-back / rolled-back / error + snapshot path).

UI-/API-Trigger:

# 컨테이너 안 (ConfigController) 에서 자동
echo '{"target_tag":"2026-20260601"}' > /etc/kopens/upgrade.request
# 호스트의 kopens-upgrade.path (inotify) 감지 → upgrade.sh --from-trigger 실행

Ausführliche Anleitung: Abschnitt „OTA-Upgrade" im Betriebsleitfaden Container-Modus.


(legacy) Native-Modus

$PE_HOME/bin/upgrade.sh

Ablauf:

  1. Aufruf von backup.sh (automatisch)
  2. Download der aktuellen install.sh von product.kopens.io
  3. install.sh lädt das Artefakt (KOPENS_EDGE_V<VER>.tar.zstd) herunter → /opt/kopens wird ersetzt
  4. Aufruf des neuen start.sh

Normale Ausgabe:

[1] BACKUP ... done (/data1/pp-backup/20260508-040215/)
[2] DOWNLOAD install.sh ... 22 KB OK
[3] EXEC install.sh ...
- downloading KOPENS_EDGE_V2026.tar.zstd ... 727 MB OK
- extracting ... OK
- finalizing ...
[4] START ... (start.sh 호출됨)
UPGRADE COMPLETED.

Die Dauer ergibt sich aus Artefaktgröße + Leitung + Entpacken (üblicherweise 5–15 Minuten).

Während des Upgrades ist das Gateway nicht verfügbar

Während upgrade.sh läuft, befindet sich das Gateway im Stillstand. Informieren Sie externe SCADA-/Sparkplug-Empfänger vorab. Führen Sie das Upgrade nach Möglichkeit im nächtlichen Inspektionsfenster aus.


2. Vorabprüfung

Vor dem Start des Upgrades:

# 1. 외부 망이 충분히 빠른지 — 회선이 느리면 download 만 수십 분
$PE_HOME/bin/network-speed-test.sh

# 2. 디스크 여유 (산출물 크기의 2–3배는 있어야)
df -h /opt /data1

# 3. 살아있는 백업이 있는지
ls -lt /data1/pp-backup | head -3

3. Überprüfung des Upgrade-Ergebnisses

$PE_HOME/bin/ps.sh # 모든 컴포넌트 살아있는지
curl -s http://127.0.0.1/api/v1/edge | jq # 버전/엣지 ID 새 값 확인
curl -s http://127.0.0.1/ui/opcua/tree | jq '.data.tree | length' # 사이트/태그 정상
$PE_HOME/bin/log-viewer.sh # 30초 정도 봐서 SEVERE 없는지
# (Ctrl+C)

Prüfen Sie zusätzlich auf externer SCADA-/Sparkplug-Empfängerseite, ob die Daten korrekt ankommen.


4. Häufige Stolperfallen

SymptomUrsache / Abhilfe
Hängt bei download install.shExternes Netz / product.kopens.io prüfen. Direkt mit curl -v http://product.kopens.io/... verifizieren
Nach extracting ist das neue Artefakt beschädigtAbbruch während des Downloads. Speicherplatz prüfen und erneut versuchen
Nach dem Upgrade laufen nur einige KomponentenSchrittweiser Fehler in start.sh — mit log-viewer.sh prüfen, wo es hakt
Nach dem Upgrade Rollback auf die VorgängerversionWiederherstellung aus dem Backup → Backup / Wiederherstellung

5. firmware.sh — Aktualisierung der OS-Pakete

$PE_HOME/bin/firmware.sh

Intern:

dnf update -y
dnf clean all

Wird verwendet, um quartalsweise Sicherheitspatches einzuspielen. Ist ein Kernel-Update enthalten, ist ein Reboot erforderlich.

$PE_HOME/bin/firmware.sh
needs-restarting -r # 새 커널이 깔렸는지 확인
# 결과가 "Reboot is required" 이면
$PE_HOME/bin/stop.sh
$PE_HOME/bin/reboot.sh

6. Weiterführende Informationen

  • Integriertes Upgrade-Szenario (sicheres Vorgehen) → Betriebsszenarien — Rollout einer neuen Version
  • Die Artefakte werden von der GitLab-Release-Kette (edge:libsedge:deploy-devedge:imageedge:stagingedge:version) erzeugt.
  • Installation / Deployment (für Entwickler): Installation / Deployment