Ansible - когда условие не работает должным образом - PullRequest
0 голосов
/ 07 февраля 2020

Я остановил splunk на целевом сервере, и я хочу, чтобы Ansible запустил его, если он не запущен на основе результатов первой команды. Я получил статус splunk с целевого сервера с помощью следующей команды:

service splunk status | grep -i running | grep -v grep
# output:
splunkd is not running.

Фрагмент книги воспроизведения:

- shell: service splunk status | grep -i running
  register: SERV

# - debug: var=SERV.stdout

- shell: echo OK
  register: ECHO

- debug: var=ECHO.stdout

# - debug: msg="SPLUNK is NOT Running and will be Started"

- service: name=splunk state=started
  when: SERV.stdout == "splunkd is not running."

Условие «когда» не работает должным образом. Если Splunk не работает, условие «когда» работает. Но если работает splunk, Ansible все равно начинает spunk.

В: Как я могу настроить условие «когда», чтобы оно начинало раскалываться, если «Spunkd не запущен». находится в выводе первой команды?

Ответы [ 2 ]

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

Используйте это:

- service: 
    name: splunk 
    state: started
  when: "'splunkd is not running' in SERV.stdout" 
0 голосов
/ 07 февраля 2020

Может быть, вы могли бы попробовать Ansible Сервисный модуль, ссылка Документы

что-то вроде этого должно работать, не уверен, если вы ищете что-то еще.

- name: Start service splunk, if not started
  service:
    name: splunk
    state: started

Надеюсь, это полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...