ACM + Confd 管理配置文件
ACM + confd 管理配置文件
confd 是一款开源的配置管理工具, 通过将存储于etcd,redis zookeeper 等后端存储系统的数据于配置模板结合起来使用,可实现保持配置处于最新状态的目的, 现在将阿里云的 ACM 作为后端,配合confd 实现无侵入式 的配置,实现 自动推送 监听等功能!
ACM配置
配置列表
- 命名空间
- 每个命名空间相当于一个大的分组,拥有自己的
"命名空间ID"
, 启动服务的时候需要指定链接的命名空间
- 每个命名空间相当于一个大的分组,拥有自己的
- Endpoint
- 服务访问的地址
- AccessKey/SecretKey
- 登录需要的key
- 创建配置
- Data ID
- Data ID在一个Group下是唯一的。相当于 一个单独的应用id
- Group
- 配置分组,全局唯一,
启动服务时需要指定分组
- 配置分组,全局唯一,
- 配置内容和格式 根据格式自行选择
- 其余功能,看字面意思即可理解
- Data ID
confd 安装
- 命名空间
confd 的构建依赖于 Go 1.10 或更高版本。
创建docker容器,并进入容器,下载源码包
1
2
3mkdir -p $GOPATH/src/github.com/kelseyhightower
cd $GOPATH/src/github.com/kelseyhightower
wget https://github.com/nacos-group/nacos-confd/archive/v0.19.2.tar.gz解压下载的 confd 源码。并重命名为 confd
1
2tar -xvf v0.19.2.tar.gz
mv nacos-confd-0.19.2 confd编译
1
2
3
4cd confd
make
-------
如果编译报错用 : mkdir -p bin; go build -o bin/confd .编译好之后,复制 二进制文件 到想要运行的目录即可
1
mv bin/confd /etc/confd
confd –verion 查看是否成功
confd 官方文档: https://github.com/kelseyhightower/confd/tree/master/docs
confd配合ACM配置
创建 confd 所需的目录用来存放模板资源配置文件和模板文件。
1
mkdir -p /etc/confd/{conf.d,templates}
在 conf.d 目录下创建 TOML 格式的 confd 模板资源配置文件。
1
vim /etc/confd/conf.d/tomcat-admin.toml
- 配置参数
- src 参数指定 confd 模板文件
- dest 参数指定生成的配置文件
- keys 参数指定将模板渲染成配置文件所需的配置内容
- mode 文件权限
- reload_cmd 运行重启命令, 可以运行自定义的脚本
- check_cmd 同上
模板见下面示例
- 配置参数
在 templates 目录下创建 confd 模板文件。
1
vim /etc/confd/templates/tomcat-admin.tmpl
在该模板文件中添加以下内容。其含义为通过 getv 从 ACM 获取 Data ID 为 tomcat-admin 的配置内容
说明 在模板中必须将 ACM 的 Data ID 中的 . 转换为 / 格式,即以斜线(/)代替句点(.)并在开头增加一个斜线。
1
value = {{getv "/tomcat-admin"}}
4 启动confd
说明 请将代码中的 {endpoint}、{namespace}、{accessKey}、{secretKey} 分别替换为 ACM 控制台上命名空间详情对话框内的 End Point、命名空间 ID、AccessKey、SecretKey。
confd -backend nacos -endpoint {endpoint}:8080 -namespace {namespace} -accessKey {accessKey} -secretKey {secretKey}
1
2
3
4
5
6
7
8* 查看/usr/loca/tomcat-admini/conf/server.xml 目录下有没有生成 dataid 里面配置的内容
## 开启confd监听
如果按照上述方法操作,confd 生成一次配置文件后就会退出。只要在 confd 启动命令中添加 -watch 参数即可监听后端系统(在本示例中为 ACM)的配置变更,一旦配置内容发生变化,confd 就会重新生成配置文件。
* 以监听模式启动
```bash
confd -watch -backend nacos -endpoint {endpoint}:8080 -namespace {namespace} -accessKey {accessKey} -secretKey {secretKey}
配置内容参考
1 |
|
1 |
|
1 |
|
发现问题: ACM配置管理编辑器,换行符是windows编码格式, 在linux里面用vim打开 会发现^M
解决办法: dos2unix -q file 转换为inux编码格式, 可以将脚本写到 reload_cmd 里面, 如 reload_cmd = dos2nuix.sh fiel
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!