问题
为什么像ansible_distribution这样的不可接受的事实在角色部分中不可用?
---
- name: Test
hosts: all
tasks:
- name: debug
debug:
msg: "{{ ansible_distribution }}" <----- Works
roles:
- "{{ ansible_distribution }}/somerole" <---- ERROR! 'ansible_distribution' is undefinedansible.cfg
[defaults]
error_on_undefined_vars = True发布于 2017-04-17 01:48:47
为什么像
ansible_distribution这样的不可接受的事实在角色部分中不可用?
因为剧本中的roles字典是在执行收集事实的setup任务之前进行解析的。
也就是说,根据常识,您应该能够在任务中使用include_role模块,但是在任务中也不可能为角色名称使用事实(类似于this problem,但您可以使用我在那里建议的解决方案,即包含带有静态名称的角色,并使用when条件控制哪一个角色)。
通常,参考您的示例,角色被设计为提供一个抽象级别,并且应该处理它们内部的架构差异,而不是外部的差异。
https://stackoverflow.com/questions/43444034
复制相似问题