2024-12-28 15:21:00 +00:00
|
|
|
|
# go-edge-shell
|
|
|
|
|
|
2024-12-28 16:35:07 +00:00
|
|
|
|
本脚本用于在 GoEdgeCDN 上自动完成以下操作:
|
|
|
|
|
|
|
|
|
|
1. 获取 Token(调用 /APIAccessTokenService/getAPIAccessToken)
|
|
|
|
|
2. 创建节点(调用 /NodeService/createNode),其中 nodeLogin.params 等 bytes 类型字段会自动做 Base64 编码
|
|
|
|
|
3. 批量添加 IP(调用 /NodeIPAddressService/createNodeIPAddresses)
|
|
|
|
|
4. 获取节点信息(调用 /NodeService/findEnabledNode)
|
|
|
|
|
5. 安装节点(调用 /NodeService/installNode)
|
2025-01-03 15:09:45 +00:00
|
|
|
|
6. 新增安装节点时默认采用从本仓库下载edge-node,如果失败请在最后加上 `--webinstall` 采用webapi进行从你的edgecdn管理站拉取安装脚本
|
2024-12-28 16:35:07 +00:00
|
|
|
|
|
2025-01-03 15:10:13 +00:00
|
|
|
|
如果调用脚本时没有指定节点名称 --name,则会自动使用 “<本机IPv4>(YYYY-MM-DD)” 作为名称。
|
2024-12-28 16:35:07 +00:00
|
|
|
|
另外,支持通过 --grantid 参数来自定义 grantId,若不指定则默认为 1。
|
|
|
|
|
|
|
|
|
|
## 使用方法
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
curl -o goedge_add_node.sh https://git.randallanjie.com/Randall/go-edge-shell/raw/branch/main/goedge_add_node.sh
|
|
|
|
|
chmod +x goedge_add_node.sh
|
|
|
|
|
./goedge_add_node.sh \
|
|
|
|
|
--acid 12345 \
|
|
|
|
|
--ackey 1234567890 \
|
|
|
|
|
--clusterid 2 \
|
|
|
|
|
--name "测试节点" \
|
|
|
|
|
--grantid 5 \
|
2025-01-03 15:51:58 +00:00
|
|
|
|
--http-api https://api.randallanjie.com \
|
|
|
|
|
--api-host https://rpc1.randallanjie.com https://rpc2.randallanjie.com
|
2024-12-28 16:35:07 +00:00
|
|
|
|
```
|
2025-01-03 15:51:58 +00:00
|
|
|
|
- --http-api:必填,脚本本身通过此地址与后端进行 HTTP 调用
|
|
|
|
|
- --api-host:可多填,用于节点自身的 rpc.endpoints 配置写入 api_node.yaml。节点启动后将自行与这些 RPC 地址通信
|
2024-12-28 16:35:07 +00:00
|
|
|
|
|
2025-01-03 15:51:58 +00:00
|
|
|
|
若需要使用后端 WebAPI 来安装 edge-node,可在以上命令后面加上 --webinstall,即:
|
|
|
|
|
```bash
|
|
|
|
|
./goedge_add_node.sh ... --webinstall
|
|
|
|
|
```
|
|
|
|
|
这样脚本会跳过本地解压步骤,直接调用后端 /NodeService/installNode。
|
2024-12-28 16:35:07 +00:00
|
|
|
|
|
|
|
|
|
## 参数说明
|
|
|
|
|
|
2025-01-03 15:51:58 +00:00
|
|
|
|
| **参数名** | **是否必填** | **说明** | **示例** |
|
|
|
|
|
|:-----------:|:--------:|:--------------------------------------------------------------------------------:|:--------------------------------------------:|
|
|
|
|
|
| --acid | 是 | Access Key ID | --acid 12345 |
|
|
|
|
|
| --ackey | 是 | Access Key | --ackey 1234567890 |
|
|
|
|
|
| --clusterid | 是 | 节点所属的集群 ID | --clusterid 2 |
|
|
|
|
|
| --http-api | 是 | 脚本本身调用HTTP接口时使用的主地址 | --http-api https://api.randallanjie.com |
|
|
|
|
|
| --api-host | 否 | 节点自身 RPC endpoints 配置,可多填,用空格分隔,写入 rpc.endpoints (如 --api-host https://rpc1 ...) | --api-host https://rpc1 ... https://rpc2 ... |
|
|
|
|
|
| --grantid | 否 | SSH 的 grantId,用于 nodeLogin.params;默认 1 | --grantid 5 |
|
|
|
|
|
| --name | 否 | 节点名称,若不指定则自动使用「<本机IPv4>(YYYY-MM-DD)」格式 | --name MyNode |
|
|
|
|
|
|
2024-12-28 16:35:07 +00:00
|
|
|
|
|
|
|
|
|
## 特性
|
|
|
|
|
|
|
|
|
|
- 自动安装依赖
|
2025-01-03 15:51:58 +00:00
|
|
|
|
如 curl, jq, base64, unzip 等命令不存在,脚本会自动尝试通过 apt-get / yum / dnf / zypper / apk 安装它们(Alpine适配)。
|
2024-12-28 16:35:07 +00:00
|
|
|
|
|
|
|
|
|
- Base64 编码
|
2025-01-03 15:51:58 +00:00
|
|
|
|
脚本会自动对 nodeLogin.params 中的 JSON 内容进行 Base64 编码,以适配 GoEdge 后端对 bytes 字段的要求。
|
2024-12-28 16:35:07 +00:00
|
|
|
|
|
|
|
|
|
- 自动命名
|
2025-01-03 15:51:58 +00:00
|
|
|
|
当不指定 --name 时,脚本会自动以 “本机IPv4 + 当前日期” 组合作为节点名称。
|
2024-12-28 16:35:07 +00:00
|
|
|
|
|
2025-01-03 15:51:58 +00:00
|
|
|
|
- 多地址支持
|
|
|
|
|
可通过 --api-host 传多个 RPC 地址(用空格分隔),写入节点配置文件 api_node.yaml。
|
2024-12-28 16:35:07 +00:00
|
|
|
|
|
|
|
|
|
- 一站式调用
|
|
|
|
|
本脚本包含创建节点、批量添加 IP、安装节点等操作,一次执行完成
|
|
|
|
|
|
|
|
|
|
## 适用环境
|
|
|
|
|
|
2025-01-03 15:51:58 +00:00
|
|
|
|
- Linux 发行版:如 Ubuntu、Debian、CentOS、Rocky Linux、Alma Linux、OpenSUSE、Alpine 等
|
2024-12-28 16:35:07 +00:00
|
|
|
|
- Shell:需要常见的 Bash 环境
|
2025-01-03 15:51:58 +00:00
|
|
|
|
- 依赖命令:curl, jq, base64, unzip。脚本中已实现自动安装逻辑,但需具备相应的包管理器(apt-get, yum, dnf, zypper 或 apk)
|