我正在尝试重复使用通用手册,以便可以在任何更大的场景中播放。
考虑构建基本服务器剧本(由角色组成),可以在覆盖通用剧本变量的同时在不同的云提供商上运行。
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
来覆盖playbook,这样我就可以保持playbook的通用性和testable值与测试变量值一致(否则我必须按照每次使用情况使用该剧本的特定分支,并且需要将任何修改合并到每个分支......)。
有没有办法让这个主group_vars/all
优先于所有东西?
你有其他方法来实现这样的用例吗?
答案 0 :(得分:0)
将此附加文件夹用于变量
inventory/
group_vars/
all
会覆盖
中的值playbooks/
build-basic-server/
group_vars/
all
代表
playbooks/
build-basic-server/
build.xml
但不适用于root
main.yml
这相当于从Play切换到主持人Variable Scope
这是解决上述问题的唯一解决方案。