Стратегии

Стратегии#

Расширения стратегии определяют, как Ansible координирует выполнение задач на множестве целевых узлов в рамках одного набора сценариев. Выбор стратегии позволяет управлять балансом между предсказуемостью, скоростью выполнения и устойчивостью сценария к сбоям.

Каждая стратегия определяет:

  • как задачи распределяются между узлами;

  • как обрабатываются ошибки на отдельных узлах;

  • может ли узел перейти к следующей задаче до завершения текущей на других узлах;

  • продолжится ли выполнение, если одна или несколько задач завершились с ошибкой.

По умолчанию используется стратегия linear: все узлы получают одну и ту же задачу, и каждый узел должен ее завершить, прежде чем будет выполнена следующая.

Стратегию можно задать:

  • на уровне сценария через директиву strategy:

    ---
    - name: Запуск задач с параллельным выполнением
      hosts: all
      strategy: free
      tasks:
        - name: Проверка доступности
          ansible.builtin.ping:
    

    Примечание

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

  • в конфигурационном файле ansible.cfg через параметр strategy:

    [defaults]
    strategy = free
    
  • через переменную окружения ANSIBLE_STRATEGY:

    export ANSIBLE_STRATEGY=free
    

Подробности о каждой из стратегий см. в справочнике.