跳到主要内容

生产验收标准

本页是安装负责人与运维团队按同一标准判断“可投入运行”的检查清单。 安装完成并不意味着服务启动过一次,而是指 重启/备份/健康检查/安全/验收证据 全部留存到位。


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/version 中记录 image_tag / build_datetag 未确认,以旧 image 启动
网络已确认 WAN、PLC NIC、DNS/NTP、平台 API 可达性PLC 网络持有 default route,NTP 未同步
安全/etc/kopens/credentials.txt root 0600,初始 admin 密码已修改保留默认/共享密码,无凭据交接记录
备份backup.sh 成功执行 1 次 + .sha256 存在未执行备份,或备份仅存在于同一磁盘
可恢复性已生成 doctor.sh 或 acceptance log故障时无可提交的证据

只要有一项为 No-Go,就不要投入运行,请按照 安装故障排查容器模式运行指南 中的升级(escalation)流程处理。


2. 安装前审批项

安装前运维团队需确认的值:

项目示例
EDGE_IDEDGE_00303
SITE_IDSITE_00001
平台 host / API keySERVER_HOSTSERVER_API_KEY
PLC NIC / WAN NICLAN1_IFACELAN2_IFACE
static IP / gateway / DNSLAN1_IPLAN2_IPLAN2_GATEWAYLAN2_DNS
image tag 策略latest 或固定 IMAGE_TAG=2026-YYYYMMDD
初始凭据策略随机生成或由运维团队指定
外部备份位置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 连接的现场,重启后还需确认采集状态与最新值刷新情况。


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 暴露的端口
  • 登记运维团队联系方式与升级路径
  • 预约下次巡检日期与备份验证日期