go-edge-shell/README.md
2025-01-03 15:09:45 +00:00

3.4 KiB
Raw Blame History

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-HH-mm)” 作为名称。 另外,支持通过 --grantid 参数来自定义 grantId若不指定则默认为 1。

使用方法

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)」格式 --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。脚本里已实现自动安装逻辑但需具备相应的包管理器