完成部署后,如果需要应用任何补丁,我需要更新数据库结构。
My hosts are:
[qa]
qa1
qa2
[prod]
prod1
prod2
我只希望根据部署到哪些环境,每个环境运行一次。
方案:
- 全部:每个环境应该应用一次db补丁,例如qa1 + prod1
- 产品:数据库补丁应该应用于生产egprod1
- 质量保证:数据库补丁应仅应用于qa egqa1
我可以使用delegate_to
选项,但我如何涵盖上述所有情况?
例如,如果我写:delegate_to: "{{ groups['prod'][0] }}"
,那么qa就不会得到更新等。
由于
答案 0 :(得分:0)
您可以编写单独的剧本来涵盖不同环境的更新,并在hosts变量中指定您想要的更新。例如,您将有三个剧本,以涵盖每个更新的排列,每个都有以下主机指令集:hosts:qa,hosts:qa:prod,hosts:prod
另一种选择是制作一个剧本以定位所有群组,主持人:qa:prod,然后使用限制选项(--limit / -l)为ansible-playbook决定要定位的群组。