在ansible中,如何等待主机无法访问,然后忽略它继续等待主机再次访问的下一个任务?

问题描述 投票:0回答:1

要求是有一个执行节点软件升级的剧本。节点在升级过程中重新启动。

当升级激活命令被 playbook 中的某个任务(比如任务 4)触发时,由于重新启动,需要 20 到 40 分钟才能变得无法访问,并且需要另外 20 到 40 分钟才能再次访问.

我想让立即任务(任务 5)等待,直到节点由于重新启动而无法访问,忽略无法访问,以移至下一个任务(任务 6),等待节点在重新启动后再次可访问。我想我可以使用 wait_for_connection 模块来完成任务 6。

我想知道如何实现等待节点因重新启动而变得不可达的任务(任务5)并忽略不可达性以继续下一个任务。请帮忙。

ansible ansible-2.x
1个回答
0
投票

对于此任务,您可以使用 ansible wait_for 模块 https://docs.ansible.com/ansible/latest/collections/ansible/builtin/wait_for_module.html

wait_for 模块在继续下一个任务之前等待条件为真。所以你可以设置一个节点不可达的条件,这样节点不可达后就继续执行任务5。类似于下面的内容,

    - name: Wait for Node to Become Unreachable
      wait_for:
        host: "{{ inventory_hostname }}"
        port: <port>  # SSH port
        state: absent  # Wait until the node becomes unreachable
      ignore_errors: yes  # Ignore errors (unreachability) and proceed to the next task
© www.soinside.com 2019 - 2024. All rights reserved.