- 参考:
- 自动拉取远端资源,并写入约定的文件中。
- nacos 约定只能使用文本
- 如果需要使用二进制资源,可以配置路径方式重新下载,或使用 base64 编码
- 在配置更新后,触发约定的外部命令,如刷新 nginx 等
- 环境变量自动继承,并扩展
- OUTFILE 指向下载的本地资源路径
- CONTENT 当输出(outfile)为
SYSMEM://
时,这里是目标资源的内容(纯文本)
- 环境变量自动继承,并扩展
- 支持多配置文件模式
- 通过
nacosJobs.file.outfile
来控制:SYSCONF://
表示目标资源是一个子配置- 默认参数
-d 资源ID -g 分组
会自动补上nacosJobs.file.outfile=SYSCONF://
- 默认参数
SYSMEM://
表示目标资源下载在内存,对应到环境变量CONTENT
- 通过
- 约定内置命令
-
用法:
作为守护进程监听配置中心数据变动,同步配置 Available Commands: fetch 获取远程配置 help Help about any command push 推送配置 Flags: --ak string 远程配置连接参数,accessKey --config string 配置文件 (默认查找 .go-ali-nacos.yaml) -d, --dataId string 数据id -e, --endpoint string 需要连接的远程配置地址如: acm.aliyun.com (公网) -g, --group string 数据分组 -h, --help 查看帮助 -n, --namespaceId string 远程配置的命名空间 -q, --quiet 安静模式 --sk string 远程配置连接参数,secretKey
-
配置文件(示例)
[nacos]
# 阿里云外部只能使用「公网」的地址,
# 内部 ECS 可以直接访问当地 的配置中心(namespaceId),不用 ak/sk
endpoint = "acm.aliyun.com"
namespaceId = "34f3****-****-****-****-****454f5184"
accessKey = "L**********************q"
secretKey = "Z****************************I"
# 可选配置(一般用于 nacos 私有化部署时)
appName=""
regionId=""
username=""
password=""
contentPath=""
loglevel = ""
## 任务项
[[nacosJobs]]
# 可执行的命令
exec = "sh"
# 参数
params = ["-c", """
echo "这里是自定义脚本"
""",]
# 任务项:资源
[[nacosJobs.file]]
dataId = "nginx.base.tar.gz"
group = "nginx_local"
outfile = "SYSMEM://"
## 任务项:子配置
[[nacosJobs]]
[[nacosJobs.file]]
dataId = "part2.toml"
group = "nginx_local"
outfile = "SYSCONF://"
- 环境变量:
说明:
这里假定已经在
./.ali-nacos.toml
中配置 ACM 基本参数。如 endpoint、namespaceId、accessKey、secretKey 。 详情见 官网
在 macOS 环境实测 2022.03.14
-
推送资源(二进制内容以 base64 编码,不能过大)
tar -cz README.md LICENSE | base64 -b 64 | ./jNacos push -g dev_cd -d l1.tar.gz
-
拉取查看 文件清单
./jNacos fetch -g dev_cd -d l1.tar.gz | base64 -d | tar -tz
-
拉取查看 解压文件
mkdir -p out && ./jNacos fetch -g dev_cd -d l1.tar.gz | base64 -d | tar -xz -C out && ls -l out
-
拉取查看 直接查看指定某个文件
./jNacos fetch -g dev_cd -d l1.tar.gz | base64 -d | tar -xOz README.md | head -3 ./jNacos fetch -g dev_cd -d l1.tar.gz | base64 -d | tar -xOz LICENSE | head -3
参考 ./docs/testful.sh