Ansible(14)wait_for模块

wait_for 只是用来在规定时间内检测,状态是否为所期望的状态是才,才执行后续的操作

如:

- name: Checking free  port for transfer
  wait_for:
    host: {{ inventory_hostname }}
    port: 6088
    state: stopped
  when:
    - inventory_hostname in groups.controller

不指定host,会使用默认的127.0.0.1

- name: wait 1988
  wait_for: host={{ inventory_hostname }} port=1988 state=stopped timeout=60
  when: inventory_hostname in groups.controller
- name: Checking free port for Cloudkitty API HAProxy
  wait_for:
    host: "{{ kolla_internal_vip_address }}"
    port: "{{ cloudkitty_api_port }}"
    connect_timeout: 1
    timeout: 1
    state: stopped
  when:
    - enable_cloudkitty | bool
    - inventory_hostname in groups['haproxy']
    - haproxy_stat.find('cloudkitty_api') == -1

并没有使端口关闭的功能

 

- name: Checking free port for Glance API HAProxy
  wait_for:
    host: "{{ kolla_internal_vip_address }}"
    port: "{{ glance_api_port }}"
    connect_timeout: 1
    timeout: 1
    state: stopped
  when:
    - enable_glance | bool
    - inventory_hostname in groups['haproxy']
    - haproxy_stat.find('glance_api') == -1

模块说明

当你利用service 启动tomcat,或数据库后,他们真的启来了么?这个你是否想确认下? 
wait_for模块就是干这个的。等待一个事情发生,然后继续。它可以等待某个端口被占用,然后再做下面的事情,也可以在一定时间超时后做另外的事。

常用参数

参数名是否必须默认值选项说明
connect_timeoutno5 在下一个事情发生前等待链接的时间,单位是秒
delayno  延时,大家都懂,在做下一个事情前延时多少秒
hostno127.0.0.1 执行这个模块的host
pathno  当一个文件存在于文件系统中,下一步才继续。
portno  端口号,如8080
statenostartedpresent/started/stopped/absent对象是端口的时候start状态会确保端口是打开的,stoped状态会确认端口是关闭的;对象是文件的时候,present或者started会确认文件是存在的,而absent会确认文件是不存在的。

案例

# 10秒后在当前主机开始检查8000端口,直到端口启动后返回
- wait_for: port=8000 delay=10

# 检查path=/tmp/foo直到文件存在后继续
- wait_for: path=/tmp/foo

# 直到/var/lock/file.lock移除后继续
- wait_for: path=/var/lock/file.lock state=absent

# 直到/proc/3466/status移除后继续
- wait_for: path=/proc/3466/status state=absent

到此上次那个家庭作业用到的全部模块都讲解完毕。

出处:https://blog.csdn.net/modoo_junko/article/details/46316295

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值