Ansible Wait_For模块

时间:2019-12-27 06:01:59

标签: 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: hostName
      port: 22
      state: started
      delay: 10
      timeout: 600

启动重新启动后,我的目标服务器已启动约5分钟。但是,剧本在此剧本中堆积直至超时并产生错误。

我的问题是:  1.在这里的wait_for如何工作?如果在600秒后无法连接到目标主机,它会向目标主机发送ssh连接请求并超时吗?还是一直对目标主机执行ping操作直到超时?  2.我可能遇到什么问题?

1 个答案:

答案 0 :(得分:0)

在这种情况下,使用wait_for_connection会更好。例如,假设播放是在- hosts: hostName

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

  

问:wait_for在这里如何工作?

A:wait_for正在等待端口可用。

  

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

A:否。它正在测试端口。

  

问:它会一直对目标主机执行ping操作,直到超时为止?

A:否。它尝试创建一个套接字。参见wait_for.py

s = socket.create_connection((host, port), connect_timeout)
  

问:我可能遇到什么问题?

A:目前尚不清楚。请勿将wait_for作为local_action运行。确保主机成功重启。