我正在尝试重用通用剧本,以便它们可以在任何更大的场景中播放。
想想一个构建基本服务器 playbook(由角色组成),它可以在不同的云提供商上运行,同时覆盖通用 playbook 变量。
group_vars/
all
playbooks/
build-basic-server/
group_vars/
all
roles/
firewall/
web/
...
build.yml
roles/
my-cloud-provider/ or container/
main.yml (with - import_playbook: playbooks/build-basic-server/build.yml)
这很好用,但我的麻烦是我不能依靠主要group_vars/all
优先于playbooks/build-basic-server/group_vars/all
。
我需要主要group_vars/all
来覆盖剧本,以便我可以保持剧本通用并使用测试变量值进行测试(否则我必须每次使用剧本的特定分支,并且需要合并对每个分支的任何修改......
有没有办法让这个主要group_vars/all
优先于一切?您还有其他方法可以实现这样的用例吗?
将此附加文件夹用于变量
inventory/
group_vars/
all
确实覆盖了中的值
playbooks/
build-basic-server/
group_vars/
all
为
playbooks/
build-basic-server/
build.xml
但不适用于根
main.yml
这相当于从播放切换到主机变量范围
因此,这是所述问题的一种可能解决方案。