Ansible Playbookでサービスステータスを確認する

Ansible Playbookでサービスステータスを確認する

ansibleプレイブックの役割を通じて、サービスとコマンドのステータスに関する情報をファイルに収集したいと思います。この日付を以下のファイルにインポートする方法はありますか?複数の作業があるため、状態をオフにする必要があります。

<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)

関連情報