【问题标题】:ansible - change precedence of role variablesansible - 改变角色变量的优先级
【发布时间】:2018-12-29 05:16:31
【问题描述】:

我创建了一个角色来安装我的应用程序。

此角色需要在角色的 vars 目录中的单独文件中定义特定变量,具体取决于应用程序(此处为 pdt_type),如下所示:

- name: Include pkg list of {{ pdt_type }}
  include_vars:
    file: "{{ pdt_type }}.yml"

一切正常。但我希望能够通过库存变量来超载我角色的这些变量。或者由 include_vars 加载的 var 优先于清单中的。

你知道我该如何改变这种行为吗? 如何根据条件定义角色的默认变量?

谢谢

【问题讨论】:

    标签: ansible


    【解决方案1】:

    我认为您不能在 ansible 中更改 variable precedence,这很好。

    很多人可能会问变量如何覆盖另一个变量。归根结底,Ansible 的理念是,你最好知道将变量放在哪里,然后你必须少考虑它。 [...] 只有一栋帝国大厦。一个蒙娜丽莎等。弄清楚在哪里定义一个变量,不要让它变得复杂。

    要在条件上定义变量,请参阅:

    关于有条件地从文件中包含变量,请参见:

    【讨论】:

    • 是的,我明白了。但是,我如何根据特定条件定义角色的“默认”变量。我的应用“一”与我的应用“二”不采用相同的默认变量
    • 在你的角色中定义一个默认值并在你的剧本中覆盖它。
    • 但是include_default 不存在,不是吗?因为我需要包含基于特定 var 的默认 var 文件。
    • 不幸的是,include_vars 的优先级高于库存优先级。所以它不能回答我的问题。
    猜你喜欢
    • 2016-11-02
    • 2016-05-23
    • 1970-01-01
    • 2018-03-07
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 2021-07-23
    相关资源
    最近更新 更多