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

本番受入基準

このページは、設置担当者と運用チームが同じ基準で「本番投入可否」を判断するためのチェックリストです。 設置が完了したという意味は、サービスが一度起動したことではなく、再起動/バックアップ/ヘルス/セキュリティ/受入証跡のすべてが残っていることを指します。


1. Go / No-Go 基準

区分Go 基準No-Go
デプロイモード新規設置は container_mode=true新規ボックスで plantpulse.service native 運用
systemdplantpulse-edge.service active + enabledactive だが enabled ではない、または restart loop
ヘルス/api/v1/system/health HTTP 200 + components UPHTTP 503、component DOWN、応答遅延の継続
バージョン/api/v1/system/versionimage_tag / build_date 記録tag 未確認、以前の image で起動
ネットワークWAN、PLC NIC、DNS/NTP、Platform API 到達性の確認PLC 網が default route を保持、NTP 未同期
セキュリティ/etc/kopens/credentials.txt root 0600、初期 admin パスワード変更完了デフォルト/共有パスワードのまま、認証情報の受け渡し記録なし
バックアップbackup.sh 1回成功 + .sha256 存在バックアップ未実行、バックアップが同一ディスクのみに存在
復旧性doctor.sh または acceptance log の生成障害時に提出する証跡がない

1つでも No-Go の場合は本番投入せず、インストールのトラブルシューティング または コンテナモード運用ガイド の escalation 手順に従います。


2. 設置前の承認項目

設置前に運用チームが確認すべき値:

項目
EDGE_IDEDGE_00303
SITE_IDSITE_00001
Platform host / API keySERVER_HOST, SERVER_API_KEY
PLC NIC / WAN NICLAN1_IFACE, LAN2_IFACE
static IP / gateway / DNSLAN1_IP, LAN2_IP, LAN2_GATEWAY, LAN2_DNS
image tag ポリシーlatest または固定 IMAGE_TAG=2026-YYYYMMDD
初期認証情報ポリシーrandom 生成または運用チーム指定
外部バックアップ先NAS / S3 / 運用バックアップサーバ

認証情報はチャット/メール本文には残さず、root 専用ファイルまたは運用シークレットストアで受け渡します。


3. Secret-safe な設置用 env

パスワードと API key を shell history に残さないため、root 専用の env ファイルを使用します。

sudo -i
umask 077
install -m 600 /dev/null /root/pp-edge-install.env
${EDITOR:-vi} /root/pp-edge-install.env

ファイル内容の例:

export EDGE_ID=EDGE_00303
export SITE_ID=SITE_00001
export SERVER_HOST=192.168.0.41
export SERVER_API_KEY='<platform-api-key>'
export LAN1_IFACE=enp1s0
export LAN1_IP=192.168.100.10/24
export LAN2_IFACE=enp2s0
export LAN2_IP=192.168.0.10/24
export LAN2_GATEWAY=192.168.0.1
export LAN2_DNS=192.168.0.1
# export IMAGE_TAG=2026-20260524

実行:

sudo -i
set -a
. /root/pp-edge-install.env
set +a
cd /opt/kopens/install
bash install.sh

運用チームが初期パスワードを直接指定する場合も、同じファイルに ADMIN_PASSAPI_KEYMQTT_PASSOPCUA_PASSCERT_PASS を記述し chmod 600 を維持します。公式の cert password key は CERT_PASS のみを使用します。


4. 受入証跡の収集

設置が完了したら、以下のコマンドで秘密値を除外した証跡ファイルを残します。

sudo -i
OUT=/root/pp-edge-acceptance-$(date +%Y%m%d-%H%M%S).txt
{
echo "# PlantPulse Edge acceptance"
date -Is
echo
echo "## host"
hostnamectl
uname -a
timedatectl
echo
echo "## service"
systemctl is-enabled plantpulse-edge.service || true
systemctl is-active plantpulse-edge.service || true
systemctl status plantpulse-edge.service --no-pager | sed -n '1,40p'
echo
echo "## version"
curl -ks https://127.0.0.1/api/v1/system/version | python3 -m json.tool
echo
echo "## health"
curl -ks https://127.0.0.1/api/v1/system/health | python3 -m json.tool
echo
echo "## ports"
ss -lntp | grep -E ':(80|443|1883|1884|6379|7799|9042|1880|12000|12443)([[:space:]]|$)' || true
echo
echo "## storage"
df -h /opt /data1 2>/dev/null || df -h
echo
echo "## docker"
docker ps --filter name=plantpulse-edge --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}'
} > "$OUT"
chmod 600 "$OUT"
sha256sum "$OUT" > "$OUT.sha256"
echo "$OUT"

受入時に運用チームへ引き渡す項目:

  • acceptance text ファイルのパスと sha256
  • /data1/pp-backups/pe-backup-*.tar.zst.sha256
  • /tmp/pe-doctor-*.tar.zst.sha256 (問題発生時)
  • ゲートウェイ IP、EDGE_IDSITE_ID、image tag、設置日時
  • 認証情報の受け渡し完了の有無 (パスワード原文は別途セキュリティ手順)

5. 再起動検証

本番投入前に一度は service restart 後の自動復旧を確認します。

sudo systemctl restart plantpulse-edge.service
sleep 30
sudo bash /opt/kopens/install/bin/health.sh
curl -ks https://127.0.0.1/api/v1/system/health | python3 -m json.tool

PLC 接続がすでに登録されている現場では、restart 後の収集状態と最終値の更新まで確認します。


6. バックアップと復旧の準備

sudo bash /opt/kopens/install/bin/backup.sh
ls -lh /data1/pp-backups/
sha256sum /data1/pp-backups/pe-backup-*.tar.zst | tail -1

初回バックアップは外部 NAS/S3/運用バックアップサーバへコピーします。同一ディスク上のバックアップのみでは障害復旧はできません。


7. 運用チーム引き渡し後のロック

  • /etc/kopens/credentials.txt の権限が 0600 root であることを確認
  • 初期 admin パスワードの変更完了
  • /root/pp-edge-install.env の保管ポリシー決定: 運用シークレットストアへ移管後にボックスから削除、または root 0600 を維持
  • ファイアウォールで WAN 公開が必要なポートのみ許可
  • 運用チームの連絡先と escalation 経路の登録
  • 次回点検日とバックアップ検証日の予約