快速安装 — 2026.05+ 容器标准
本页是现场安装单台网关时使用的标准流程。
PlantPulse Edge 自 2026.05 起以单一 Docker 容器镜像方式发布,
install.sh 会一次性完成从 OS 依赖到 systemd 注册的全部工作。
安装完成后,由 plantpulse-edge.service 管理容器。
不要与 legacy native 服务 plantpulse.service 同时使用。
0. 一览
sudo -i
curl -fsSL https://product.kopens.io/plantpulse-edge/install.sh | bash
包含镜像拉取在内,安装通常需要 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.service / plantpulse-edge.service 同时 active |
安装前的运维团队审批值请按照生产验收标准整理。
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>' \
LAN1_IFACE=enp1s0 \
LAN1_IP=192.168.100.10/24 \
LAN2_IFACE=enp2s0 \
LAN2_IP=192.168.0.10/24 \
LAN2_GATEWAY=192.168.0.1 \
LAN2_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 对接信息 |
LAN1_IFACE / LAN1_IP | PLC 网络 NIC 与静态 IP |
LAN2_IFACE / LAN2_IP / LAN2_GATEWAY / LAN2_DNS | WAN/外网 NIC 与路由 |
ADMIN_PASS / API_KEY / MQTT_PASS / OPCUA_PASS | 用运维团队指定的初始凭据进行 override |
CERT_PASS | TLS keystore 密码。官方 cert password key 仅使用这一个 |
IMAGE_TAG | 固定特定 container image tag |
SKIP_PULL=1 | 已在本地 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 耗时过长 | 首次镜像拉取达数 GB。线路较慢时可考虑按隔离网络流程导入 image tar.zst |
plantpulse.service 也处于 active | 与 legacy native 冲突。新容器运维模式下应停止/禁用 native 服务 |
| 安装完成后无法访问 Web | 先在网关内部确认 curl -ks https://127.0.0.1/api/v1/system/health。内部正常则为外部 firewall/NAT 问题 |
| 证书警告 | 若为 self-signed 证书,首次访问出现浏览器警告属正常。生产 CA 证书分发策略依现场安全标准而定 |
| health 返回 503 | 确认 journalctl -u plantpulse-edge.service -n 100、docker logs plantpulse-edge |
更详细的分症状处理请参见安装故障排查。