diff --git a/README.md b/README.md index 7ea2a26..d593b3d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,64 @@ # go-edge-shell -GoEdge自动化添加节点脚本 \ No newline at end of file +本脚本用于在 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。脚本里已实现自动安装逻辑,但需具备相应的包管理器