- 我希望在一个组中的所有机器上执行 4 项任务。
- 一旦完成全部机器完全运行,任务 5 必须在一台机器上运行(假设这是一个数据库实例)。
- 一次任务 5完成后,任务6至10在同一组内的所有机器上运行。
目前我正在考虑按如下方式执行此操作(解决方案#1):
- 第 1 点的剧本
- 等到 playbook 1 完成后,然后手动运行 Point 2 的 Playbook
- 第 2 点完成后,针对第 3 点运行剧本。
另一种方法(解决方案#2)是:
一个剧本包含 3 个项目 - 如下所示:
- hosts: groupA tasks: 1...4 - hosts: dbinstance tasks: 5 - hosts: groupA tasks: 6...10
SE 社区能否帮助我验证上述两种方法的正确性,并提出更好的建议?
答案1
您可以使用,delegate_to
或者when: {{hostvars[inventory_hostname}} == "YOUR HOST"