ワンラインインストール (推奨)
現場でゲートウェイ1台をインストールする標準手順です。エッジは単一のDockerコンテナ
イメージとして配布され、install.sh がOS依存関係からsystemd登録までを一括で処理します。
アップグレードも同じ経路です — product.kopens.io で最新の install.sh を取得して
再実行します(冪等)。詳細はアップグレードにあります。
インストールが完了すると、plantpulse-edge.service がコンテナを管理します。
0. 概要
sudo -i
curl -fsSL https://product.kopens.io/plantpulse-edge/install.sh | bash
インストール中のimage pullを含め、通常5〜15分かかります。回線が遅い場合や、初めてのDockerインストールが必要な ボックスでは、さらに時間がかかることがあります。
1. インストール前の1分確認
# Linux / 권한
uname -a
id
# 외부 다운로드 도달성
curl -I https://product.kopens.io/plantpulse-edge/install.sh
# 디스크 / 메모리
df -h /opt /data1 2>/dev/null || df -h /opt
free -h
| 項目 | 基準 |
|---|---|
| 権限 | root (sudo -i) |
| ネットワーク | product.kopens.io へのHTTPS到達 |
| ディスク | /opt/kopens 3GB以上、/data1 データ用に100GB以上推奨 |
| メモリ | 8GB最小、16GB以上推奨 |
| 既存サービス | plantpulse-edge.service が既にあれば、インストールはその上に更新されます |
インストール前の運用チーム承認値はプロダクション受け入れ基準に合わせて整理します。
install.sh がDocker、OSパッケージ、sysctl、firewall、chronyをインストール/整列します。
社内ポリシーでパッケージインストールがブロックされている場合は、セキュリティチーム/ITに許可を依頼するか、
閉域網インストールに切り替えてください。
2. インストール実行
推奨: インストールbundleを取得してから実行
sudo -i
curl -fsSLO https://product.kopens.io/plantpulse-edge/plantpulse-edge-docker.tar.gz
mkdir -p /opt/kopens/plantpulse-edge-docker
tar xzf plantpulse-edge-docker.tar.gz -C /opt/kopens/plantpulse-edge-docker --strip-components=1
cd /opt/kopens/plantpulse-edge-docker/bin
bash install.sh
bundle方式はインストールファイルが残るため、障害分析と再実行が容易です。
bundleをどこに展開しても、install.sh は status.sh · health.sh · upgrade.sh のような
運用スクリプトを**/opt/kopens/install/bin/** にコピーします。
以降のドキュメントで /opt/kopens/install/bin/… として案内するのはそのためです —
bundleを展開した場所を覚えておく必要はありません。
代替: ワンライン実行
sudo -i
bash < <(curl -fsSL https://product.kopens.io/plantpulse-edge/install.sh)
3. サイト値 / ネットワーク値の指定
デフォルト値でもインストールできますが、現場納品では通常、以下のenvを指定します。
sudo -i
cd /opt/kopens/install
EDGE_ID=EDGE_00303 \
SITE_ID=SITE_00001 \
SERVER_HOST=192.168.0.41 \
SERVER_API_KEY='<platform-api-key>' \
NET1_IFACE=enp1s0 \
NET1_IP=192.168.100.10/24 \
NET2_IFACE=enp2s0 \
NET2_IP=192.168.0.10/24 \
NET2_GATEWAY=192.168.0.1 \
NET2_DNS=192.168.0.1 \
bash install.sh
よく使うenv:
| 変数 | 意味 |
|---|---|
EDGE_ID | ゲートウェイID。例: EDGE_00303 |
SITE_ID | サイトID。例: SITE_00001 |
SERVER_HOST / SERVER_API_KEY | プラットフォームAPI連携情報 |
NET1_IFACE / NET1_IP | PLC網NICとstatic IP |
NET2_IFACE / NET2_IP / NET2_GATEWAY / NET2_DNS | WAN/外部網NICとrouting |
ADMIN_PASS / API_KEY / MQTT_PASS / OPCUA_PASS | 運用チームが定めた初期認証情報でoverride |
CERT_PASS | TLS keystoreパスワード。公式cert password keyはこれ一つだけ使用 |
IMAGE_TAG | 特定のcontainer image tag固定 |
SKIP_PULL=1 | 既にimageをlocal loadした閉域網/再実行ケース |
パスワード/API keyをshell historyに残さない場合は、secret-safeインストールenv
パターンを使用します。運用チームが指定したパスワードもroot 0600ファイルに入れ、sourceした後に install.sh を実行してください。
4. インストール中に表示される正常な出力
例はバージョンによって多少異なりますが、流れは同じです。
[install] prepare directories ... OK
[install] install packages / docker ... OK
[install] configure sysctl / firewall / chrony ... OK
[install] generate TLS material ... OK
[install] write /etc/kopens/app.properties ... OK
[install] docker pull docker.kopens.io/pe/plantpulse-edge:<tag> ... OK
[install] install systemd unit plantpulse-edge.service ... OK
[install] start service ... OK
[install] health probe /api/v1/system/health ... OK
INSTALL COMPLETED.
初回インストール時にadmin/MQTT/OPC-UA/API keyはボックスごとにランダム生成され、
/etc/kopens/credentials.txt に保存されます。このファイルは chmod 0600 root で管理してください。
5. インストール後の検証
# service 상태
systemctl is-active plantpulse-edge.service
systemctl status plantpulse-edge.service --no-pager
# 설치 도구의 한 줄 점검
sudo bash /opt/kopens/install/bin/status.sh
# version: container_mode=true 여야 함
curl -ks https://127.0.0.1/api/v1/system/version | python3 -m json.tool
# health: HTTP 200 + components UP
curl -ks https://127.0.0.1/api/v1/system/health | python3 -m json.tool
ブラウザ:
| 画面 | URL |
|---|---|
| Web UI | https://<gateway-ip>/ui/main |
| Node-RED | https://<gateway-ip>/ui/flow/ |
| Swagger UI | https://<gateway-ip>/public/swagger-ui/index.html |
初期ログインパスワードは /etc/kopens/credentials.txt のadmin項目を確認します。
インストール直後はインストール直後の点検とプロダクション受け入れ基準を続けて実施してください。
受け入れ証拠を残す
現場受け入れ前には、health画面のキャプチャよりも再現可能なテキスト証拠が重要です。
sudo bash /opt/kopens/install/bin/health.sh
sudo bash /opt/kopens/install/bin/status.sh > /root/pp-edge-status-$(date +%Y%m%d-%H%M%S).txt
全体のacceptance logは受け入れ証拠収集コマンドを使用します。
6. よくある落とし穴
| 症状 | 原因 / 対応 |
|---|---|
Could not resolve host: product.kopens.io | DNSまたは社内ファイアウォール。DNS、proxy、allow-listを確認。ダメなら閉域網インストール |
curl: (7) Failed to connect | outbound 443ブロックまたはproxyが必要。HTTPS_PROXY 設定後に再試行 |
No space left on device | /opt または /data1 の空き不足。df -h 確認後に領域確保 |
docker pull が長い | 初回のimage pullは数GBです。回線が遅い場合は閉域網手順のimage tar.zst持ち込みも検討 |
| インストール完了後にWebアクセス不可 | まずゲートウェイ内部で curl -ks https://127.0.0.1/api/v1/system/health を確認。内部OKなら外部firewall/NAT問題 |
| 証明書警告 | self-signed証明書なら初回アクセス時のブラウザ警告は正常。運用CA証明書配布ポリシーは現場セキュリティ基準に従う |
| healthが503 | journalctl -u plantpulse-edge.service -n 100、docker logs plantpulse-edge を確認 |
より詳細な症状別の対処はインストールトラブルシューティングを参照してください。
7. 次のステップ
- インストール直後の点検 — health、初回ログイン、site/edge ID確認
- プロダクション受け入れ基準 — 再起動、バックアップ、証拠ファイル、セキュリティロック
- 新しいPLC接続の追加
- タグ登録
- コンテナモード運用
- バックアップと復元