查找变量并动态地从 ansible vault 更改它们
look up variables and change them from an ansible vault dynamically
我是ansible的新手,当我想替换配置文件中的变量时遇到问题。情况是我在这个文件中有标签要替换为在 ansible-vault 中找到的值,该值与配置文件中的标签同名。
配置文件如下所示:
mongo.uri=<%=@dbruchost%>
mongo.replica.set=set0
mongo.database=<%=@dbrucdb%>
mongo.user=<%=@dbrucuser%>
mongo.password=<%=@dbrucpass%>
ansible-vault如下
vars:
dbruchost: "test.test:27017"
replica.set: "set0"
dbrucdb: "database1"
dbrucuser: "data"
dbrucpass: "d4t4"
jenkinsuser: "jenkinstest"
jenkinspassword: "j3nkins"
实际上我用正则表达式一个一个地改变变量
- name: Replace uri
replace:
path: /tmp/artifacts/surveyMonkey/application.properties
regexp: "<%=@dbruchost%>"
replace: vars.dbruchost
但我想动态地做。 ansible 是否有可能从应用程序属性中读取标签并在 ansible-vault 中查找并替换它们?
为什么不为您的配置文件使用模板:
使用模板 file.j2 例如:
mongo.uri={{ dbruchost }}
mongo.replica.set=set0
mongo.database={{ dbrucdb }}
mongo.user={{ dbrucuser }}
mongo.password={{ dbrucpass }}
您添加一个任务以使用模块模板创建您的配置文件
任务示例:将您的 config.j2 放在模板目录中
tasks:
- name: Dump all variables
template:
src: file.j2
dest: /tmp/artifacts/surveyMonkey/application.properties
我想您可以访问您的保险库变量
我是ansible的新手,当我想替换配置文件中的变量时遇到问题。情况是我在这个文件中有标签要替换为在 ansible-vault 中找到的值,该值与配置文件中的标签同名。
配置文件如下所示:
mongo.uri=<%=@dbruchost%>
mongo.replica.set=set0
mongo.database=<%=@dbrucdb%>
mongo.user=<%=@dbrucuser%>
mongo.password=<%=@dbrucpass%>
ansible-vault如下
vars:
dbruchost: "test.test:27017"
replica.set: "set0"
dbrucdb: "database1"
dbrucuser: "data"
dbrucpass: "d4t4"
jenkinsuser: "jenkinstest"
jenkinspassword: "j3nkins"
实际上我用正则表达式一个一个地改变变量
- name: Replace uri
replace:
path: /tmp/artifacts/surveyMonkey/application.properties
regexp: "<%=@dbruchost%>"
replace: vars.dbruchost
但我想动态地做。 ansible 是否有可能从应用程序属性中读取标签并在 ansible-vault 中查找并替换它们?
为什么不为您的配置文件使用模板:
使用模板 file.j2 例如:
mongo.uri={{ dbruchost }}
mongo.replica.set=set0
mongo.database={{ dbrucdb }}
mongo.user={{ dbrucuser }}
mongo.password={{ dbrucpass }}
您添加一个任务以使用模块模板创建您的配置文件
任务示例:将您的 config.j2 放在模板目录中
tasks:
- name: Dump all variables
template:
src: file.j2
dest: /tmp/artifacts/surveyMonkey/application.properties
我想您可以访问您的保险库变量