применение на БД нескольких 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 так ведёт себя. И в прицнипе правильно, сам же хочешь всегда получать логи :)
Блин, придется свой обработчик ошибок реализовать, после сбора логов.
Обсуждают сегодня