go-edge-shell/README.md
2025-01-03 15:51:58 +00:00

73 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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