Ansible等待模块

Ansible等待模块,ansible,Ansible,我创建了一个剧本来重新启动远程服务器。在继续之前,我使用wait_for等待远程服务器启动。因此,我有以下代码: —- - hosts: hostName tasks: - name: reboot shell: reboot async: 1 poll: 0 - name: wait for server to come up Local_action: wait_for args: host: ho

我创建了一个剧本来重新启动远程服务器。在继续之前,我使用wait_for等待远程服务器启动。因此,我有以下代码:

—-
- hosts: hostName
  tasks:
    - name: reboot
      shell: reboot
      async: 1
      poll: 0

    - name: wait for server to come up
      Local_action: wait_for
      args:
      host: hostName
      port: 22
      state: started
      delay: 10
      timeout: 600
我的目标服务器在启动重新启动大约5分钟后启动。但是,剧本在这出戏中堆叠,直到超时并产生错误

我的问题是: 1.你怎么在这里等工作?如果600秒后无法连接到目标主机,它是否会向目标主机发送ssh连接请求并超时?还是一直ping目标主机直到超时?
2.我可能有什么问题?

在这种情况下,您最好使用。例如,给定该剧在
-hosts:hostName

- name: Wait 600 seconds, but only start checking after 10 seconds
  wait_for_connection:
    delay: 10
    timeout: 600

问:你是如何在这里等待工作的

A:wait_for正在等待端口可用

问:如果600秒后无法连接到目标主机,它是否会向目标主机发送ssh连接请求并超时

不,它正在测试端口

问:它会一直ping目标主机直到超时吗

答:没有。它试图创建一个套接字。看

问:我可能有什么问题


答:从现有数据来看还不清楚。不要运行
等待
作为
本地操作
。确保主机成功重新启动。

谢谢,@Vladimir!我更新了我的问题。我的目标是不断检查目标服务器是否在重新启动后启动,以便继续下一个重头戏。我已经检查了等待您建议的连接模块。是的,我可能应该使用它,因为它向我的目标主机发送ping?因此,对于wait_for,我当前的播放是在我的ansible playbook运行服务器上,检查hostName:22套接字在hostName重新启动后是否打开?如何手动检查playbook运行服务器上的套接字hostName:22是否打开?对不起,我不太明白套接字是如何工作的。如果我的问题听起来很傻,请原谅我:-(
s = socket.create_connection((host, port), connect_timeout)