hostvars[item]['ansible_nodename']我们有几个使用主机item别名的剧本。它通常有效。但有时不行,出现以下错误:
'dict object' has no attribute 'ansible_nodename`
Run Code Online (Sandbox Code Playgroud)
我打印了内容hostvars,但没有看到这个属性。
我找不到文档来hostvars了解我们可以安全地使用什么ansible_nodename。所以,问题是:
ansible_nodename为吗ansible_host?hostvars在哪里可以找到其创建内容和算法的描述?但有时不会,给出以下错误...
这可能是因为当时没有及时收集这些主机的事实。
您可能需要添加空游戏来收集剧本最顶部所有主机的事实:
- name: gather facts
hosts: all
- name: balancer configuration
hosts: balancer
tasks:
- name: generate configs
template:
src: conf.j2
dest: "/conf/{{ hostvars[item]['ansible_nodename'] }}.conf"
with_hostnames: nodes
Run Code Online (Sandbox Code Playgroud)
如果没有“收集事实”,平衡器的配置任务将因ansible_nodename未收集而失败。
| 归档时间: |
|
| 查看次数: |
10242 次 |
| 最近记录: |