применение на БД нескольких SQL скриптов,
далее, при любом результате - собираю логи, чтобы прикопать их в артифакты гитлаба.
- name: Execute script
block:
- name: "Run queries from SQL scripts: {{ scripts_list | join(', ') }}"
postgresql_db:
name: "{{ db.name }}"
login_host: "{{ db_master }}"
login_user: "{{ db.user }}"
login_password: "{{ db_pass }}"
target: "{{ settings_home_dir.path }}/{{ item }}"
state: restore
register: settings_output
with_items: "{{ scripts_list }}"
always:
- name: Get logs
include_tasks: logs.yml
Упал один из скриптов, но таска не зафейлилась при этом
ok: [server1] => (item=6_settings.sql) => {
"msg": [
"Script: 6_settings.sql",
"Apply: OK",
"Failed: False",
"Status: ",
"Warning message: ['psql:/tmp/********-settings.yd78qwc_/6_settings.sql:491: ERROR:....'
Т.е. exit code из модуля - 0, но в warning message по факту содержит - error.
Курить в сторону модуля postgresql_db или это block так отрабатывает при применении always?
Скорее всего block с always так ведёт себя. И в прицнипе правильно, сам же хочешь всегда получать логи :)
Блин, придется свой обработчик ошибок реализовать, после сбора логов.
Обсуждают сегодня