通过 ansible playbook 获取服务状态

通过 ansible playbook 获取服务状态

我想通过 ansible playbook 角色收集文件中服务和命令状态的信息。有什么方法可以在如下文件中获取这些日期。由于有多个任务我们需要关闭状态。

<serverip> snmp inactive
<serverip1> snmp active
<serverip2> snmp active

或者

<serverip3> snmp 0
<serverip4> snmp 1

像这样的东西。

以下是我们当前正在执行的示例脚本。

    ---
    - name: read snmp service status
      block:
        - name: get sysctl snmp services status [PRE]
          shell: "service snmp status"
          ignore_errors: true
          register: snmp
        - name: set fact snmp
          set_fact:
            results_pre: "{{ results_pre|combine({'snmp': snmp.stdout.replace(\"'\", '\"')|quote }) }}"
        - name: write snmp service status
          copy:
            dest: "{{ remote_logs_path }}/{{ ansible_ssh_host }}/pre/snmp"
            content: "{{ snmp.stdout }}"
      tags:
        - snmp

答案1

要通过 Ansible Playbooks 收集服务的状态,建议使用service_facts模块。

- name: Gathering Service Facts
  service_facts:

您可以根据以下内容将状态写入日志文件条件句和事实。

- name: Write SNMP service status
    ...
  when: ("snmp.service" in services)

相关内容