首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ansible hostvars和template

Ansible hostvars和template
EN

Stack Overflow用户
提问于 2020-10-17 04:43:45
回答 1查看 265关注 0票数 0

我有haproxy角色,变量在vars/main.yml下定义,模板在template/haproxy.cfg.j2下定义

在main.yml变量文件中,我定义了这个变量: iface: ansible_default_ipv4.interface

在模板文件中:

代码语言:javascript
复制
backend app
balance     roundrobin
{% for host in groups['web'] %}
    server {{ host }} {{ hostvars[host]['ansible_'+ iface ]['ipv4']['address'] }}:80 check
{% endfor %}

问题是当我执行剧本时,我得到以下错误: changed":false,"msg":"AnsibleUndefinedVariable:'ansible.vars.hostvars.HostVarsVars object‘没有属性u'ansible_ansible_default_ipv4.interface’

所以我知道我在连接'ansible_'+iface时遇到了问题。

请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2020-10-28 06:45:58

在两个变量定义上都有ansible_

代码语言:javascript
复制
iface: ansible_default_ipv4.interface`

和模板

代码语言:javascript
复制
server {{ host }} {{ hostvars[host]['ansible_'+ iface ]['ipv4']['address'] }}:80 check

因此,串联会创建您在错误消息中看到的名称ansible_ansible_default_ipv4.interface

请将其从其中一个位置删除,然后重试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64396168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档