wait_for模块主要用于等待到达到某个条件时才继续执行下一个 task

参数 必填 默认值 注解
connect_timeout no 在下一个事情发生前等待链接的时间,单位是秒,默认是5 秒
delay yes 在开始调查之前等待的秒数
host yes 127.0.0.1 执行这个模块的 host,默认是 127.0.0.1
exclude_hosts no list of hosts or ips to ignore when looking for active TCP connections for drained state
path no 定义文件系统的文件路径存在,则继续
port no 需要检测的端口号
state yes started 判断条件的各种状态,默认是 started,检测一个端口被打开和关闭:started、stopped,检查一条是否活动的连接:drained,检查一个文件或者搜索字符串,如果存在则使用 present or started,若不存则使用 absent
timeout no 300 wait for 最大等待时间,默认是 300 秒

Ansible技术问答:http://linux.xyz/topic/Ansible

示例:

# 先等待 10 秒,然后检测 8000 端口是否被打开;若 300 秒内能检测到,则继续下一个 task,否则超时
- wait_for: port=8000 delay=10

# wait 300 seconds for port 8000 of any IP to close active connections
- wait_for: host=0.0.0.0 port=8000 delay=10 state=drained

# wait 300 seconds for port 8000 of any IP to close active connections
# 排除指定的 ip:10.2.1.2,10.2.1.3
- wait_for: host=0.0.0.0 port=8000 state=drained exclude_hosts=10.2.1.2,10.2.1.3

# 等待直到文件存在,则继续下一个 task
- wait_for: path=/tmp/foo

# 等待直到文件中存在某一个字符串,则继续下一个 task
- wait_for: path=/tmp/foo search_regex=completed

# 等文件已经被删除后,才继续下一个 task
- wait_for: path=/var/lock/file.lock state=absent

# 等待进程完成
- wait_for: path=/proc/3466/status state=absent