эхо-сообщение на основе значения ansible stdout - PullRequest
0 голосов
/ 23 апреля 2020

Team,

Не уверен, почему мое сообщение с эхо не печатается. Я хочу напечатать текст, если команда, которая выполнялась раньше для остановки процесса, прошла успешно.

В моем случае проверяю состояние процесса apache2. По сути, если stdout пуст, он прошел, а если stderr существует, то это не удалось. Я также ссылался на эту ссылку, но не повезло .. https://stackoverflow.com/questions/26142343/ansible-conditional-based-on-stdout-of-result

- name: stop apache2 process
  command: systemctl stop apache2
  ignore_errors: no
  changed_when: false
  register: service_apache2_status
  become: true

- debug:
    var: service_apache2_status.stdout
- name: Check if apache2 stopped
  command: echo "Successfully Stopped Apache2"
#  when: service_apache2_status.stdout == " "
  when: service_apache2_status.stdout | length == 0

Фактический результат:

TASK [diskcache_prerequisites : stop apache2 process] **********************************************************************************
ok: [localhost]

TASK [diskcache_prerequisites : debug] *************************************************************************************************
ok: [localhost] => {
   "service_apache2_status.stdout": ""
}

TASK [diskcache_prerequisites : Check if apache2 stopped] ******************************************************************************
changed: [localhost]

Ожидаемый результат:

TASK [diskcache_prerequisites : Check if apache2 stopped] ******************************************************************************
changed: [localhost]
Successfully Stopped Apache2

1 Ответ

0 голосов
/ 23 апреля 2020

Вам не нужно вообще проверять, остановился ли apache2, если вы используете systemd модуль вместо попытки использовать command: для вызова systemctl вручную

Что касается вашего вопроса: если вы хотите посмотреть output, то для этого - debug: msg="Successfully stopped Apache2"; модуль command: не является средством отладки общего назначения, он предназначен для запуска команд

...