gpt4 book ai didi

Ansible playbook 在串行执行中的最后一个节点上跳过任务

转载 作者:行者123 更新时间:2023-12-03 23:10:43 29 4
gpt4 key购买 nike

我想一个接一个地在 4 个服务器上运行一些 ansible 任务,即以串行方式。但中间会有停顿。所以,我最后在剧本中添加了暂停,但我希望在最后一个服务器上跳过它。否则它会无缘无故地等待。请让我知道如何实现这一点。

---
- hosts: server1,server2,server3,server4
serial: 1
vars_files:
- ./vars.yml

tasks:
- name: Variable test
pause:
minutes: 1

最佳答案

真正有趣的问题迫使我寻找实际的解决方案。这是我想出的最快的一个。

ansible special variables documentation定义 ansible_play_hosts_all变量如下

List of all the hosts that were targeted by the play



该变量中的主机列表按照它在 list 中找到的顺序排列。

如果您使用默认库存 order对于您的游戏,您可以设置一个将触发任务的测试,除非当前主机是该列表中的最后一个:
when: inventory_hostname != ansible_play_hosts_all[-1]

正如@Vladimir 在下面的评论中所报告的那样,如果您更改默认播放顺序参数,此方法将中断。

关于Ansible playbook 在串行执行中的最后一个节点上跳过任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57871897/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com