閉域網へのインストール
インターネットアクセスが遮断されたサイト(軍事施設 / セキュリティ指定施設 / 一部工場など)にゲートウェイをインストールする際に使用する手順です。
標準の ワンラインインストール は product.kopens.io への到達が必要ですが、閉域網ではそれが不可能なため、外部で成果物を入手して USB / NAS に転送した後にインストールする必要があります。
コンテナモード (2026.05+, 推奨)
install パッケージとコンテナイメージの tar.zst の2つを転送します。install.sh が sibling image/*.tar.zst を検知すると、docker load へ自動的にインポートされます(registry pull をバイパス)。
準備用PC (インターネット接続可能)
搬出用バンドルは手動で作成せず、airgap-bundle.sh で作成してください。リポジトリファイルとコンテナイメージを一括してまとめるため、バージョンの不整合が発生しません。GitLab では airgap:export 手動ジョブを実行し、artifacts としてダウンロードすることも可能です。
# 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/
閉域網ボックス (インターネット接続不可)
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)
インストール後、コンテナモードで検証します:
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
インストール後のアップグレードもインターネットなしで行います。新しいイメージファイルを搬入し、pe upgrade --bundle (閉域網アップグレード) を実施してください。
閉域網であっても、インストール完了基準は同一です。運用投入前に プロダクション受入基準 に基づき、バックアップファイル、acceptance log、image tag、資格情報の提供状況を記録してください。
よくあるトラブル
| 症状 | 原因 / 解決策 |
|---|---|
tar: Error opening archive | USB のイメージが一部のみコピーされている。準備用PC で sha256 を比較し、再度コピーしてください |
docker load が «no space left» | /var/lib/docker の空き容量不足。イメージサイズの2倍以上の空き容量を確保してください |
サービスが activating で停止 | モジュールの1つが遅延しています。journalctl -u plantpulse-edge -f と bin/logs.sh でどのモジュールかを確認してください |
| 時刻が不一致 (1970年) | 閉域網で NTP にアクセス不可。社内 NTP サーバーの IP を /etc/chrony.conf に追加してください |
install.sh が外部 URL を呼び出す | オフライン引数が不足しています。上記の閉域網手順のコマンドをそのまま使用してください |
| 症状 | 原因 / 解決策 |
|---|---|
dnf install がインターネットを探して停止 | --disablerepo=* オプションの指定漏れ。上記 3.1 のオプションをそのまま適用してください |
tar: Error opening archive | USB の成果物が一部のみコピーされている。準備用PC で sha256 比較後、再コピーしてください |
| systemctl status plantpulse → activating | bin/start.sh の段階のどこかで停止。journalctl -u plantpulse -f でライブ確認してください |
| 時刻が不一致 (1970年) | 閉域網で NTP にアクセス不可。社内 NTP サーバーの IP を /etc/chrony.conf に追加してください |
| install.sh が download URL を呼び出す | sed の修正漏れ — install.sh 内のすべての URL を file:///mnt/usb/... に変更してください |
関連情報
- インターネット接続可能な場合の標準手順: ワンラインインストール
- プロダクション受入基準: プロダクション受入基準
- バックアップからの復旧 (災害時): バックアップおよび復旧
- 新バージョンの適用 (インターネット接続可能): アップグレード (
upgrade.sh)