【发布时间】:2019-01-22 17:37:59
【问题描述】:
我正在尝试通过带有 if else 条件的 var 将变量传递给另一个剧本
- hosts: localhost
- import_playbook: merge.yml
vars:
variables:
- "{{ {'test: 'xyz'} if ( flag == true) else {'test': 'abc'} }}"
当我在 merge.yml 中打印值时,它总是打印 test:abc。我正在使用命令 ansible-playbook test.yml -e flag=true 执行剧本
这是受支持的语法吗?无论如何我可以使用 if else 和 vars 吗?
【问题讨论】:
-
你能把一个完整的例子和一个 merge.yml 放在一起吗?并包括在 flag=true 和 flag=false 运行时的确切调用以及输出?
-
我只是打印merge.yml
--- - hosts: localhost tasks: - debug: msg={{ variables }} - debug: msg={{ flag }}中的值 -
output is ok: [localhost] => { "msg": [ { "test": "abc" } ] } with both flag=true and flag=false
标签: ansible