有什么方法可以更改在 group_vars/all 下定义的变量的值



我在 ansible 的文件中group_vars/all定义了一个变量。

overlay:True

我需要在剧本中检查内核版本,如果内核版本小于 4,我将上述变量设置为 false。这可以在安斯布尔中完成吗? 如果是,我想知道步骤/ansible模块。

根据 http://docs.ansible.com/ansible/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable

在 2.x 中,我们使优先级顺序更加具体(使用 最后列出的变量赢得优先级):

  • 角色默认值 [1]
  • 库存文件或脚本组变量 [2]
  • 库存group_vars/全部
  • 行动手册group_vars/全部
  • 库存group_vars/*
  • 行动手册 group_vars/*
  • 清单文件或脚本主机变量 [2]
  • 库存host_vars/*
  • 行动手册 host_vars/*
  • 主机事实
  • 玩变量
  • 玩vars_prompt
  • 播放vars_files
  • role vars
  • (在role/vars/main.yml中定义)
  • 变量(仅适用于块中的任务)
  • 任务
  • 变量(仅适用于任务)
  • 角色(和include_role)参数
  • 包括参数
  • include_vars
  • set_facts/注册变量
  • 额外的变量(始终优先)

set_fact具有第二高的优先级。因此,set_fact设置的变量应该能够覆盖组变量。

最新更新