要求:写一个剧本,判断httpd服务是否启动,如果启动了,则停止服务,如果没启动则启动服务
有缘者观之。
[root@ansible ~]# cat check_http.yml
---
- name: gather facts #收集信息
hosts: node1
tasks:
- name: stop or start httpd
hosts: node1
tasks:
- name: get httpd state # 获取httpd的状态,使用register,将状态信息存入result
systemd:
name: httpd
register: result
- name: Display Apache service status # 打印httpd的状态,方便调试,验证用
debug:
var: result.status.ActiveState
- name: start httpd #使用wen子句判断httpd的状态,若状态为active,说明httpd正在运行,执行下一步动作,把服务停掉,若状态不是active,就跳过这个任务
service:
name: httpd
state: stopped
when: result.status.ActiveState == "active"
- name: stop httpd #和上面的任务类似,只是判断状态从active变成了inactive,若状态为inactive,就启动httpd
service:
name: httpd
state: started
when: result.status.ActiveState == "inactive"
[root@ansible ~]#