Как отлаживать предложение Ansible when_failed - PullRequest
0 голосов
/ 01 августа 2020

Я пытаюсь оценить задачу с помощью конструкции «failed_when».

Пока все выглядит нормально, но задача по-прежнему не выполняется, хотя это не должно быть.

- name: Apply OJVM Patch {{ patch_id_ojvm }}
  shell: "{{ oracle_home }}/OPatch/opatch apply -silent | tee {{ SCRIPTS_DIR }}/logs/ojvm_{{ patch_id_ojvm }}.log"
  #shell: "{{ oracle_home }}/OPatch/opatch apply -silent"
  args:
    chdir: "{{ ORACLE_PATCH_DIR }}/{{ patch_id }}/{{ patch_id_ojvm }}"
  register: patch_apply_ojvm
  #failed_when: '"successfully" not in patch_apply_ojvm.stdout'
  failed_when: >
    ("successfully" not in patch_apply_ojvm.stdout) or
    ("warnings" not in patch_apply_ojvm.stdout)

Выход playbook:

TASK [execute_binary_patching_steps: Apply OJVM Patch 31219919] ******************* ************************************************* ********************************************** фатальный: [ oradbpoc1]: НЕ ПРОШЛО! => {"изменено": true, "cmd": "/u1/app/oracle/product/12.2.0/dbhome_1/OPatch/opatch apply -silent | tee / u1 / app / oracle / scripts / logs / ojvm_31219919. log »,« delta »:« 0: 00: 05.472860 »,« end »:« 2020-08-01 10: 51: 43.055192 »,« failed_when_result »: true,« r c »: 0,« start » : "2020-08-01 10: 51: 37.582332", "stderr": "Сеанс OPatch завершен с предупреждениями.", "Stderr_lines": ["Сеанс OPatch завершен с предупреждениями."], "Stdout": "Oracle Установщик промежуточных исправлений версии 12.2.0.1.21 \ nCopyright (c) 2020, Oracle Corporation. Все права защищены. \ N \ n \ n Oracle Главная : /u1/app/oracle/product/12.2.0/dbhome_1\nCentral Inventory: / u1 / app / oraInventory \ n из: /u1/app/oracle/product/12.2.0/dbhome_1/oraInst.loc\nOPatch version : 12.2.0.1.21 \ n ВерсияOUI: 12.2.0.1.4 \ n Расположение файла журнала: /u1/app/oracle/product/12.2.0/dbhome_1/cfgtoollogs/opatch/opatch2020-08-01_10-51-38AM_1.log \ n \ nПроверка среды и выполнение предварительных проверок ... \ n \ nСледующие исправления представляют собой дубликаты исправлений, установленных в Oracle Home. \ n [31219919] \ nВы уже установили такие же исправления с одинаковые UPI или версии. \ nЭти патчи будут пропущены. \ n \ n \ n Местоположение файла журнала: /u1/app/oracle/product/12.2.0/dbhome_1/cfgtoollogs/opatch/ opatch2020-08-01_10-51-38AM_1.log \ n \ nОшибка завершена с предупреждениями. "," stdout_lines ": [" Oracle Установщик промежуточных исправлений версии 12.2.0.1.21 "," Авторские права (c) 2020, Oracle Корпорация. Все права защищены. "," "," "," Oracle Home: /u1/app/oracle/product/12.2.0/dbhome_1 "," Central Inventory: / u1 / app / oraInventory "," from: / u1 / app / oracle / product / 12.2.0 / dbhome_1 / oraInst.lo c "," Версия OPatch : 12.2.0.1.21 "," Версия OUI: 12.2.0.1.4 "," Расположение файла журнала: /u1/app/oracle/product/12.2.0/dbhome_1/cfgtoollogs/opatch/opatch2020-08-01_10-51 -38AM_1.log "," "," Проверка среды и выполнение предварительных проверок ... "," "," Следующие исправления являются дубликатами исправлений, установленных в Oracle Home. "," [31219919] "," Вы уже установили такие же исправления с тем же UPI или той же версией. "," Эти исправления будут пропущены. "," "," "," Расположение файла журнала: /u1/app/oracle/product/12.2.0/dbhome_1/cfgtoollogs/opatch/opatch2020-08-01_10-51-38AM_1.log "," "," OPatch завершен с предупреждениями. "]}

ВОСПРОИЗВЕДЕНИЕ ********************************************** ************************************************* ************************************************* ********************** oradbpoc1: ok = 7 изменено = 2 недоступно = 0 failed = 1 пропущено = 8 спасено = 0 проигнорировано = 0

Ключевое слово «предупреждение» четко видно в выводе, однако ansible по-прежнему не выполняет задачу?

Любое идеи, где я могу ошибиться?

Заранее спасибо.

FR

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