更改角色变量的优先级



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

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

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

它工作正常。但我希望能够通过库存变量来超载我角色的这些变量。或者由 include_vars 加载的 var 比清单的 var 具有更高的优先级。

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

谢谢

我认为您无法更改 ansible 中的变量优先级,这很好。

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

有关在条件上定义变量的信息,请参阅:

  • https://serverfault.com/questions/907164/ansible-conditionally-define-variables-in-vars-file-if-a-certain-condition-is-m
  • 在 Ansible 中有条件地定义变量
  • https://everythingshouldbevirtual.com/automation/ansible-using-set_facts-module/

要有条件地包含文件中的变量,请参阅:

  • https://docs.ansible.com/ansible/2.7/modules/include_vars_module.html

最新更新