要求是有一个执行节点软件升级的剧本。节点在升级过程中重新启动。
当升级激活命令被 playbook 中的某个任务(比如任务 4)触发时,由于重新启动,需要 20 到 40 分钟才能变得无法访问,并且需要另外 20 到 40 分钟才能再次访问.
我想让立即任务(任务 5)等待,直到节点由于重新启动而无法访问,忽略无法访问,以移至下一个任务(任务 6),等待节点在重新启动后再次可访问。我想我可以使用 wait_for_connection 模块来完成任务 6。
我想知道如何实现等待节点因重新启动而变得不可达的任务(任务5)并忽略不可达性以继续下一个任务。请帮忙。
对于此任务,您可以使用 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