首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么不可用的事实在角色部分中不可用?

为什么不可用的事实在角色部分中不可用?
EN

Stack Overflow用户
提问于 2017-04-17 01:39:42
回答 1查看 1.6K关注 0票数 4

问题

为什么像ansible_distribution这样的不可接受的事实在角色部分中不可用?

代码语言:javascript
复制
---
- name: Test
  hosts: all
  tasks:
    - name: debug
      debug:
        msg: "{{ ansible_distribution }}" <----- Works

  roles:
    - "{{ ansible_distribution }}/somerole" <---- ERROR! 'ansible_distribution' is undefined

ansible.cfg

代码语言:javascript
复制
[defaults]
error_on_undefined_vars = True
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-17 01:48:47

为什么像ansible_distribution这样的不可接受的事实在角色部分中不可用?

因为剧本中的roles字典是在执行收集事实的setup任务之前进行解析的。

也就是说,根据常识,您应该能够在任务中使用include_role模块,但是在任务中也不可能为角色名称使用事实(类似于this problem,但您可以使用我在那里建议的解决方案,即包含带有静态名称的角色,并使用when条件控制哪一个角色)。

通常,参考您的示例,角色被设计为提供一个抽象级别,并且应该处理它们内部的架构差异,而不是外部的差异。

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

https://stackoverflow.com/questions/43444034

复制
相关文章

相似问题

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