go-edge-shell/README.md
2024-12-28 16:35:07 +00:00

65 lines
3.3 KiB
Markdown
Raw 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
如果调用脚本时没有指定节点名称 --name则会自动使用 “<本机IPv4>(YYYY-MM-DD-HH-mm)” 作为名称。
另外,支持通过 --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 \
--api-host https://api.randallanjie.com
```
## 参数说明
| 参数名 | 必填 | 说明 | 示例 |
| ----------- | ---- | ---------------------------------------------------------------- | --------------------------------------- |
| --acid | 是 | Access Key ID | --acid 12345 |
| --ackey | 是 | Access Key | --ackey 1234567890 |
| --clusterid | 是 | 节点所属的集群 ID | --clusterid 2 |
| --grantid | 否 | SSH 的 grantId用于 nodeLogin.params默认 1 | --grantid 5 |
| --name | 否 | 节点名称,若不指定则自动使用「<本机IPv4>(YYYY-MM-DD-HH-mm)」格式 | --name MyNode |
| --groupid | 否 | 节点分组 ID默认 0 | --groupid 3 |
| --regionid | 否 | 节点区域 ID默认 0 | --regionid 1 |
| --dnsroutes | 否 | 节点 DNS 线路,以空格分隔 | --dnsroutes "routeA routeB" |
| --api-host | 否 | 指定后端 API 地址。若与默认不符可在此指定 | --api-host https://api.randallanjie.com |
## 特性
- 自动安装依赖
如 curl, jq, base64 等命令不存在,脚本会自动尝试通过 apt-get / yum / dnf / zypper 安装它们
- Base64 编码
脚本会自动对 nodeLogin.params 中的 JSON 内容进行 Base64 编码,以适配 GoEdge 后端对 bytes 字段的要求
- 自动命名
当不指定 --name 时,脚本会自动以 “本机IPv4 + 当前时间” 组合作为节点名称
- grantId 参数
可通过 --grantid 设定,默认为 1
- 一站式调用
本脚本包含创建节点、批量添加 IP、安装节点等操作一次执行完成
## 适用环境
- Linux 发行版:如 Ubuntu、Debian、CentOS、Rocky Linux、Alma Linux、OpenSUSE 等
- Shell需要常见的 Bash 环境
- 依赖命令curl, jq, base64。脚本里已实现自动安装逻辑但需具备相应的包管理器