检查服务的Ansible命令

时间:2019-10-21 09:25:42

标签: ansible

我正在使用Ansible,并试图制作一个简单的剧本来检查服务是否启动。

service... account-daemon.service

我的剧本的一部分,包括以下内容:

- name account daemon service get status
  command: systemctl show -p SubState account-daemon
  register: status

- debug: msg="{{ status.stout }}"

请注意,剧本之间没有空格。

1 个答案:

答案 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"