Ansible 变量优先级

Ansible 变量优先级

我正在尝试了解 Ansible 中的变量优先级 - 更确切地说是有关 inventory 或 playbook 中的 host_vars 和 group_vars 的部分。我的布局如下所示:

production/
├── inventory (alfa, beta and gamma hosts)
├── group_vars/
│   └── all (foo=1)
└── host_vars/
    └── alfa (foo=2)
playbooks/
├── site.yml (debuging variable foo)
├── group_vars/
│   └── all (foo=10)
└── host_vars/
    └── beta (foo=20)

所以我有三个节点(alfa、beta 和 gamma)和 foo 变量。当我开始游戏时,我得到了以下结果:

alfa's foo=2
beta's foo=20
gamma's foo=10

根据文档优先顺序应如下:

  1. 库存组变量
  2. 库存主机变量
  3. 剧本 group_vars
  4. 剧本 host_vars

但我的结果看起来优先顺序如下:

  1. 库存组变量
  2. 剧本 group_vars
  3. 库存主机变量
  4. 剧本 host_vars

我误解了什么吗?还是文档中有错误?我正在使用 Ansible 2.0.1。

答案1

引用@Henrik Pingel 的评论 - 因为他的评论是这个问题的正确答案:

看起来这是文档中的一个错误。有一个开放的问题为了这。 — Henrik Pingel

由于新的 ansible 2.9 版本已修复此行为,因此此做法已被弃用。

相关内容