我创建了一个剧本来重新启动远程服务器。我使用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.我可能遇到什么问题?
答案 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
运行。确保主机成功重启。