メインコンテンツまでスキップ

アップグレード

コンテナモード (2026.05+, 推奨)

# 자동 (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

実行順序 (自動):

  1. META-INF/VERSION.JSON の build_date 比較
  2. pre-snapshot/data1/pp-backups/pe-backup-<ts>.tar.zst (backup.sh 呼び出し、SKIP_BACKUP=1 で回避可能)
  3. docker pull <new-tag>
  4. /etc/kopens/version.env 更新 + systemctl restart
  5. /api/v1/system/health 90秒 probe
  6. all UP → success / DEGRADED → 自動 rollback + snapshot パス案内

進行状態: cat /etc/kopens/upgrade.status — JSON (idle / running / success / rolling-back / rolled-back / error + snapshot path)。

UI / API トリガー:

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

詳細なガイド: コンテナモード運用ガイド の「OTA アップグレード」節。


(legacy) Native モード

$PE_HOME/bin/upgrade.sh

実行順序:

  1. backup.sh 呼び出し (自動)
  2. product.kopens.io から最新の install.sh をダウンロード
  3. install.sh が成果物(KOPENS_EDGE_V<VER>.tar.zstd)をダウンロード → /opt/kopens を差し替え
  4. 新しい start.sh を呼び出し

正常出力:

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

所要時間は成果物サイズ + 回線 + 解凍時間 (通常 5〜15分)。

アップグレード中はゲートウェイがダウンタイム

upgrade.sh が動作している間、ゲートウェイは 停止状態 です。外部 SCADA / Sparkplug 受信側へ事前に通知してください。可能であれば 夜間点検ウィンドウ に実行します。


2. 事前点検

アップグレードを開始する前に:

# 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. アップグレード結果の検証

$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)

外部 SCADA / Sparkplug 受信側でも正常に到達しているか併せて確認します。


4. よく陥る落とし穴

症状原因 / 対処
download install.sh で停止する外部網 / product.kopens.io を点検。curl -v http://product.kopens.io/... で直接確認
extracting 後、新しい成果物が壊れているダウンロード中に中断。ディスク容量を確認して再試行
アップグレード後、一部コンポーネントのみ稼働start.sh の段階的失敗 — log-viewer.sh でどこで止まったか確認
アップグレード後に 以前のバージョンへロールバックバックアップから復旧 → バックアップ / 復旧

5. firmware.sh — OS パッケージ更新

$PE_HOME/bin/firmware.sh

内部的には:

dnf update -y
dnf clean all

四半期単位でセキュリティパッチを適用する際に使用します。カーネル更新が含まれる場合は reboot が必要 です。

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

6. さらに詳しく

  • アップグレードの統合シナリオ (安全な手順) → 運用シナリオ — 新バージョン配布
  • 成果物は GitLab リリースチェーン(edge:libsedge:deploy-devedge:imageedge:stagingedge:version)によって生成されます。
  • インストール / 配布 (開発者向け): インストール / 配布