一、wait_for模块
wait_for是用来在规定时间内检测,状态是否为所期望的状态,才会执行后续的操作。
常见使用场景:
1、等待直到监听的端口"up"起来
2、等待文件存在或不存在时,再继续执行
3、等待匹配字符串出现在文件中后,再继续执行
4、监听log文件直到特定的"string"出现
常用参数说明:
参数 | 默认值 | 说明 |
---|---|---|
connect_timeout | 5秒 | 在关闭和重试之前等待连接发生的最大秒数 |
exclude_hosts | 当寻找活动的TCP连接为"耗尽"状态时要忽略的主机或ip列表 | |
active_connection_states | ESTABLISHED FIN_WAIT1 FIN_WAIT2 SYN_RECV SYN_SENT TIME_WAIT | 被算作活动连接的TCP连接状态列表 |
host | 默认值:127.0.0.1 | 等待的可解析主机名或IP地址 |
delay | 默认值:0 | 开始轮询前等待的秒数 |
msg | 这将覆盖不满足所需条件的正常错误消息 | |
path | 在继续之前,文件系统中必须存在的文件的路径。参数Path和port互斥,二者只可取其一 | |
port | 轮询的端口号,参数Path和port互斥,二者只可取其一 | |
search_regex | 可用于匹配文件或套接字连接中的字符串,默认为多行正则表达式 | |
sleep | 1秒 | 在两次检查之间休眠的秒数 |
state | present absent started stopped drained | 当检查一个端口时,started将确保端口是开放的,stopped将检查状态是关闭的,drained将检查活动连接是耗尽的。 当检查文件或搜索字符串是否存在时,将确保文件或字符串已存在再继续执行,absent将检查该文件是否存在或被删除 |
timeout | 默认值:300秒 | 等待的最大秒数,当与另一个条件一起使用时,它将强制出现错误,在没有其他条件的情况下,它相当于睡眠 |
示例一:检查端口是否正常
方法一:
playbooks文件,如下图所示:
执行结果,如下图所示:
方法二:
playbooks文件,如下图所示:
执行结果,如下图所示:
示例二:检查文件或目录是否已经删除
方法一:
playbooks文件,如下图所示:
执行结果,如下图所示:
方法二:
playbooks文件,如下图所示:
执行结果,如下图所示:
总结:整理不易,如果对你有帮助,可否点赞关注一下?
更多详细内容请参考:《Linux运维篇:Linux系统运维指南》