Background
我正在部署到包含多个主机和监视主机的系统 . 监控主机需要使用其他主机的信息来配置其监控检查 . 但是,通过监视主机上的hostvars访问时,在host_vars / group_vars中定义为Jinja模板的变量不起作用 .
Example
inventory.ini
my_host ansible_connection=local
monitoring_host ansible_connection=local
host_vars / my_host转变
---
my_var: "{{ inventory_hostname }}"
playbook.yml
---
- hosts: my_host
tasks:
- debug: var=my_var
- hosts: monitoring_host
tasks:
- debug: var="hostvars['my_host']['my_var']"
期望两个调试任务将输出相同的值 "my_host"
. 在Ansible 1.7中,第二个调试任务输出 "{{ inventory_hostname }}"
(即模板未展开) . 在Ansible 1.8中,第二个调试任务输出 "monitoring_host"
(即模板在错误的上下文中展开) .
这是一个已知的错误?有一个很好的解决方法吗?
1 回答
我很确定这是有缺陷的行为 . 可能的解决方法: