我不确定这是可能的。
我想在运行时定义一个 var 并使用它来访问另一个 var(在文件中定义,剧本..)。
在运行时定义:
typeConfig (possible values: "in_config" or "out_config")
在剧本中定义:
in_config: url_config: http://localhost/configuration out_config: url_config: http://config.pi.dyn-dns.org/configuration
我需要解决与此类似的问题:
{{ {{ typeConfig }}.url_config }}
我尝试:
- name: Mytest
hosts: all
gather_facts: false
sudo: yes
vars:
- in_config:
url_config: http://localhost/configuration
- out_config:
url_config: http://config.pi.dyn-dns.org/configuration
tasks:
- set_fact:
typeConfig: in_config
- name: Value in_config.url_config
debug: msg=" {{in_config.url_config}}"
- name: Value out_config.url_config
debug: msg=" {{out_config.url_config}}"
- name: Value typeConfig
debug: var=typeConfig
- debug: msg="{{ {{ typeConfig }}.url_config }} "
实际结果
任务路径:/home/nor/gitrepos/iiot-iac/ansible/myUnitTest.yml:19 致命:[node1]:失败!=> { "failed": true, "msg": "模板错误,而模板字符串:预期的令牌 ':',得到 '}'。字符串:{{ {{ typeConfig }}.url_config }} " } " }