【发布时间】:2021-09-01 18:43:08
【问题描述】:
如何使动态变量在 jinja2 循环中与主机变量一起使用?
有效:
{{ hostvars[inventory_hostname]['somevar_state'] }}
它也有效:
{{ hostvars[inventory_hostname].somevar_state }}
用于测试:
{{ hostvars[inventory_hostname]['' ~ 'somevar_state' ~ ''}}
但它不起作用:
如果 somevarlist 包含 'somevar' 值
{% for var in somevarlist %}
{{ hostvars[inventory_hostname][var + '_state'] }}
{% endfor %}
或
{{ hostvars[inventory_hostname]['' ~ var ~ '_state' ~ ''] }}
结果:
msg:任务包含一个带有未定义变量的选项...错误是:'ansible.vars.hostvars.HostVarsVars object' has no attribute 'somevar_state'...
【问题讨论】: