ansible检查不存在的服务

时间:2018-12-05 14:17:11

标签: ansible jinja2

我是ansible的新手,我想检查一些主机是否存在不存在的服务,以便根据事后的事实做事。

到处都有大约100台具有相同debian的服务器,但是工作负载不同,所以我需要检查是否存在任何服务并正在运行。

示例剧本检查zabbix,mysql和postgres(实际上应该检查)

- hosts: all
  remote_user: root
  vars:
      zabb: "{{ ansible_facts.services['zabbix-agent']['state'] == 'running' }}"
      mysql: "{{ ansible_facts.services['mariadb']['state'] == 'running' }}"
      postgres: "{{ ansible_facts.services['postgresql']['state'] == 'running' }}"
  tasks:
    - name: populate
      service_facts:

    - name: checking mysql
      # any action here
      when: mysql
      ignore_errors: yes

    - name: checking postgres
      # any action here
      when: postgres
      ignore_errors: yes

如何避免服务解析失败?检查服务是否存在的最佳方法是什么?

有一个选项可以通过ansible的命令模块来解析ps | lsof输出,但这看起来并不是一个很好的解决方案。

可用版本为2.7.4

0 个答案:

没有答案