как использовать, когда условие в ansible - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть часть скрипта:

- name: To Display SPLUNK Status

  shell: service splunk status | grep PID

  register: STATUS



- name: Showing SPLUNK Status

  debug: var=STATUS.stdout_lines



- name: Getting Process IDs of the SPLUNK

  shell: ps -ef|grep -i splunk

  register: pids_of_SPLUNK



- name: Printing the process IDs obtained

  debug: var=pids_of_SPLUNK.stdout_lines



#- name: SPLUNK is NOT running

- debug: msg="Splunk is NOT running"

  when: not STATUS.stat.exists



#- name: SPLUNK is Running

- debug: msg="Splunk is Restarted and Running"   

эта строка вызывает у меня ошибку: когда: не STATUS.stat.exists

, когда Splunk запущен, он имеет статус:

Статус Splunk:

работает splunkd (PID: 7198).

работают помощники splunk (PID: 7200).

Когда не работает splunk выполняется:

Статус Splunk:

Splunkd не работает.

Как я могу использовать: когда условие для этого?

Спасибо.

1 Ответ

0 голосов
/ 05 февраля 2020

Использовать service_facts . Например

  vars:

    my_services:
      - 'splunk'
      - 'apache2'
      - 'ssh'

  tasks:

    - service_facts:

    - debug:
        msg: "Service {{ item }} is not available."
      loop: "{{ my_services }}"
      when: item not in ansible_facts.services.keys()|list

    - debug:
        msg: "Service {{ item }} is available."
      loop: "{{ my_services }}"
      when: item in ansible_facts.services.keys()|list

    - debug:
        msg: "{{ item }} is {{ ansible_facts.services[item].state }}"
      loop: "{{ my_services }}"
      when: item in ansible_facts.services.keys()|list

дай

    "msg": "Service splunk is not available."
    "msg": "Service apache2 is available."
    "msg": "Service ssh is available."
    "msg": "apache2 is stopped"
    "msg": "ssh is running"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...