Я пытаюсь проверить, запущена ли служба, затем зарегистрируйте свой вывод на какую-либо переменную, если она не запущена, а затем запустите службу. Ниже приведен фрагмент моей Ansible playbook.Несоответствующий регистр сбой, когда нет вывода из команды оболочки
- hosts: localhost
tasks:
- name: check if service is running
shell: pgrep node
register: pgrep
- name: stop running service
shell: pkill node
when: pgrep.stdout_lines != ''
tags:
- stop
- name: start running service
shell: pkill node
when: pgrep.stdout_lines == ''
tags:
- start
Теперь в описанном выше случае, если процесс не запущен, то pgrep node
команда возвращает код выхода статус 1, который выходит из строя «проверьте, если служба запущена» задачи и прекращает дальнейшее выполнение задач. Я знаю, установив ignore_errors: true
, проигнорирует ошибку и продолжит движение вперед, но не сможет выполнить Ansible. Есть ли способ, которым мы можем справиться с этим изящно?
«* ... проигнорирует ошибку и продолжит движение вперед, но это не сработает. *« Я не понимаю, что это значит. – techraf
Что я имел в виду, так это то, что конкретная задача проверить, работает ли служба, все еще не выполняется, хотя выполнение продолжается с выполнением дополнительных задач. –