单线安装(推荐)
在现场安装一台网关的标准流程。边缘端以单个 Docker 容器镜像形式部署,install.sh 会一次性处理从操作系统依赖到 systemd 注册等所有步骤。
升级也走相同的路径 —— 从 product.kopens.io 获取最新的 install.sh 并重新执行(幂等)。详细信息请参阅升级。
安装完成后,plantpulse-edge.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-edge.service,安装将覆盖更新它 |
安装前,需根据生产验收标准整理运维团队批准的值。
install.sh 会安装/配置 Docker、操作系统包、sysctl、防火墙、chrony。若公司政策禁止安装软件包,请向安全团队/IT 申请许可,或改用隔离网络安装。
2. 执行安装
推荐:下载安装包后执行
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
安装包方式会保留安装文件,便于故障分析和重新执行。
无论安装包解压到哪里,install.sh 会将 status.sh · health.sh · upgrade.sh 等运维脚本复制到 /opt/kopens/install/bin/。
后续文档中指示使用 /opt/kopens/install/bin/…,即为此原因 —— 无需记住安装包解压的位置。
替代方案:单线执行
sudo -i
bash < <(curl -fsSL https://product.kopens.io/plantpulse-edge/install.sh)
3. 指定站点值 / 网络值
也可以使用默认值安装,但现实交付中通常会在下面指定环境变量。
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
常用环境变量:
| 变量 | 含义 |
|---|---|
EDGE_ID | 网关 ID。例如:EDGE_00303 |
SITE_ID | 站点 ID。例如:SITE_00001 |
SERVER_HOST / SERVER_API_KEY | 平台 API 集成信息 |
NET1_IFACE / NET1_IP | PLC 网络网卡与静态 IP |
NET2_IFACE / NET2_IP / NET2_GATEWAY / NET2_DNS | WAN/外部网络网卡与路由 |
ADMIN_PASS / API_KEY / MQTT_PASS / OPCUA_PASS | 覆盖运维团队指定的初始凭据 |
CERT_PASS | TLS 密钥库密码。官方证书密码密钥仅此一个 |
IMAGE_TAG | 固定特定容器镜像标签 |
SKIP_PULL=1 | 已本地加载镜像的隔离网络/重新执行场景 |
若不想在 shell 历史中留下密码/API 密钥,请使用安全安装环境变量模式。将运维团队指定的密码放入 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 密钥会为每台机器随机生成,并存储在 /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 条目。安装完成后,请接着进行安装后巡检和生产验收标准。
留下验收证据
现场验收前,可复现的文本证据比健康界面截图更重要。
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
完整的验收日志请使用验收证据收集命令。
6. 常见陷阱
| 症状 | 原因 / 应对 |
|---|---|
Could not resolve host: product.kopens.io | DNS 或内网防火墙。检查 DNS、代理、允许列表。若不行,请改用隔离网络安装 |
curl: (7) Failed to connect | 出站 443 被阻断或需要代理。设置 HTTPS_PROXY 后重试 |
No space left on device | /opt 或 /data1 空间不足。检查 df -h 后释放空间 |
docker pull 耗时过长 | 首次镜像拉取有数 GB。若网速慢,也可考虑隔离网络流程中的镜像 tar.zst 导入 |
| 安装完成后无法访问 Web | 首先在网关内部检查 curl -ks https://127.0.0.1/api/v1/system/health。若内部正常,则是外部防火墙/NAT 问题 |
| 证书警告 | 若是自签名证书,首次访问时浏览器警告属正常。生产 CA 证书的分发策略遵循现场安全标准 |
| health 返回 503 | 检查 journalctl -u plantpulse-edge.service -n 100、docker logs plantpulse-edge |
更详细的按症状排查方法,请参阅安装问题排查。