coupled_task_group.yml
                  
                  
                  - name: Group of tasks that are tightly coupled
                  
                  
                    vars:
                  
                  
                      max_retries: "{{ 5 if max_retries is undefined else max_retries | int }}"
                  
                  
                      retry_delay: "{{ 10 if retry_delay is undefined else retry_delay | int }}"
                  
                  
                    block:
                  
                  
                    - name: Increment the retry count
                  
                  
                      set_fact:
                  
                  
                        retry_count: "{{ 0 if retry_count is undefined else retry_count | int + 1 }}"
                  
                  
                  
                  
                  
                    - name: Setup for the next task that needs to run after each failed attempt
                  
                  
                      setting_up:
                  
                  
                          some: prerequisite action
                  
                  
                  
                  
                  
                    - name: Some task that might fail
                  
                  
                      failing_task:
                  
                  
                          some: setting
                  
                  
                  
                  
                  
                    rescue:
                  
                  
                      - fail:
                  
                  
                          msg: Maximum retries of grouped tasks reached
                  
                  
                        when: retry_count | int == max_retries | int
                  
                  
                  
                  
                  
                      - debug:
                  
                  
                          msg: "Task Group failed, let's give it another shot"
                  
                  
                  
                  
                  
                      - name: Sleep between retries
                  
                  
                        wait_for:
                  
                  
                          timeout: "{{ retry_delay }}" # seconds
                  
                  
                        delegate_to: localhost
                  
                  
                        become: false
                  
                  
                  
                  
                  
                      - include_tasks: coupled_task_group.yml
                  
                  
                
Нормально работает, таким образом перебирал элементы массива для таски, типа фоллбэк варианты - полёт нормальный больше года
Ты про использование rescue или про то что rescue вызывает тот же самый файл в котором описан ?
И про то и про то ) Именно с инклюдом его и юзал, почти 1 в 1 как в твоем примере, просто в rescue массив перебирал от кол-ва попыток, если > определенного числа - то уже фэйл
Спасибо за ответ )
Обсуждают сегодня