我在带有 Ansible 的主机上运行脚本(opnsense install)。 我想等待 ssh 服务变得无法访问(表明 opnsense 已重新启动主机),然后再次变得可用(表明主机已备份)。 第二部分很简单,第一部分不起作用。 这是我尝试过的一件事:
- name: Wait for ssh to stop listening
wait_for:
host: '{{ ansible_host }}'
port: '{{ port_ssh }}'
connect_timeout: 5
delay: 10
delegate_to: localhost
register: result
retries: 30
until: result is failed
等待 ssh stop 停止监听的干净方法是什么,或者确保主机在启动之前已关闭? 我不想手动重新启动,因为 opnsense 安装脚本会在完成后执行此操作。
等待 sshd(端口 22)停止。根据您的需要设置超时
- name: Wait for sshd to stop
wait_for:
port: 22
state: stopped
timeout: 30
然后,等待sshd重启
- name: Wait for sshd to start again
wait_for:
port: 22
timeout: 30
将任务放入一个块中。在救援部分显示出了什么问题。
用于测试的完整剧本示例
- hosts: test_23
tasks:
- block:
- name: Wait for sshd to stop
wait_for:
port: 22
state: stopped
timeout: 30
- name: Wait for sshd to start again
wait_for:
port: 22
timeout: 30
rescue:
- debug:
msg: |
{{ ansible_failed_task }}
{{ ansible_failed_result }}
- debug:
msg: Play continues...