我正在使用Ansible,并试图制作一个简单的剧本来检查服务是否启动。
service... account-daemon.service
我的剧本的一部分,包括以下内容:
- name account daemon service get status
command: systemctl show -p SubState account-daemon
register: status
- debug: msg="{{ status.stout }}"
请注意,剧本之间没有空格。
答案 0 :(得分:0)
您可以使用以下方法检查服务的状态,例如rscd的示例
- name: populate service facts
service_facts:
- debug:
var: ansible_facts.services
- debug:
msg: "service is running"
when: ansible_facts.services['account-daemon.service'].state == "running"
输出:
好:[localhost] => { “ msg”:“服务正在运行” }
参考:https://docs.ansible.com/ansible/latest/modules/service_facts_module.html
编辑:
- name: check rscd
stat:
path: /etc/init.d/rscd
register: serv
- name: populate service facts
service_facts:
- debug:
var: ansible_facts.services
- debug:
msg: "rscd is running"
when: serv.stat.exists and ansible_facts.services['rscd.service'].state == "running"