用于检查服务的ansible命令

用于检查服务的ansible命令,ansible,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 }}" 请注意playbook之间没有空格。您可

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

service... account-daemon.service
我的剧本包括以下内容:

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

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

请注意playbook之间没有空格。

您可以使用下面的内容检查服务状态,例如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"

输出:

确定:[本地主机]=>{ “msg”:“服务正在运行” }

参考:

编辑:


嗨,为这个干杯。我在看我们讲话时写下的内容,这是我得到的:-名称:填充服务事实服务事实-调试:var:ansible\u事实服务-调试:msg:“帐户守护程序正在运行”当:ansible\u事实服务。帐户守护程序。服务==“正在运行”抱歉,Ash没有提供足够的信息。抱歉,Ash没有提供足够的信息。不,这对我不起作用。我只想检查一下这个服务(account_daemon.service)是否在两个centos框上。我认为这很简单,但我因为某些原因而步履蹒跚。这是我在这本剧本上创作的许多剧本中的一部分,但这是我唯一不能理解的。。如果您能提供更多帮助,请提前感谢。我是否应该将account-daemon.service添加到您放置RSCD的位置?干杯。。。不,我们在用煤气做饭。VAR给了我一个服务列表,但最后一部分不起作用。。。失败!=>{msg:“条件检查'anistable\u facts\u services['account\u daemon.service']state==\“running\”)
  - 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"