根据广告资源的不同,我想在我的剧本中用变量的名称替换YAML键:
config:
{{ db_name }}:
other_config
稍后,我在模板中使用它,通过to_nice_json
将其转换为JSON。但是,在JSON中,我看到{{ db_name }}
而不是变量名。是否有任何解决方法在密钥上下文中使用变量值?
答案 0 :(得分:0)
如果您希望在模板中更改它,可以尝试使用replace而不是变量作为键。 例如,在模板中为使用regex(CHANGETHISVAR)的搜索设置名称并使用模块:
- replace:
path: /path/to/your/file
regexp: '(CHANGETHISVAR)'
replace: 'db_name'
运行模板任务后添加此例程。
答案 1 :(得分:0)
但是,在JSON中,我看到
{{ db_name }}
而不是变量名
所以你做错了“JSON ”中的。
示例:
---
- hosts: localhost
gather_facts: no
connection: local
vars:
db_name: DB1
config: "{'{{ db_name }}':'value'}"
tasks:
- debug:
var: config
结果:
TASK [debug] *******************************************************************
ok: [localhost] => {
"config": {
"DB1": "value"
}
}
答案 2 :(得分:0)
根据我对此处所述要求的理解,以下可能是生成动态JSON配置的可行方法: