【发布时间】:2016-07-25 17:57:26
【问题描述】:
Ansible 中是否存在“全局”变量(也就是说跨多个主机)?如果我们遇到该错误状态,我想设置一个错误标志然后调用一个特定的单独剧本。我的结构如下:
- hosts: localhost
connection: local
gather_facts: no
roles:
- role1 <-- some error flag is set here
- role2
- include: teardown.yml
when: error_flag is defined and error_flag == true
我尝试在group_vars 中设置一个变量,但在我看来,在运行时也没有真正的方法来更改变量值。
Set_fact 不起作用,因为用于拆解的when 不在本地主机中。即使我尝试访问hostvars['localhost']['error_flag],这也不起作用,因为您似乎不能在when 子句中使用Jinja 模板。
【问题讨论】:
-
主机变量
hostvars.localhost.error_flag应该可以在没有Jinja2 模板的when子句中访问。也就是说,写出不带{{}}Jinja2 分隔符的表达式。
标签: ansible jinja2 ansible-playbook