Стратегии#
В коллекцию ansible.builtin входят следующие расширения стратегий:
debug;free;host_pinned;linear.
Описание применения расширений приведено в документе Стратегии.
debug#
Стратегия для пошаговой отладки.
После выполнения каждой задачи процесс приостанавливается. Переход к следующей задаче не происходит без подтверждения от пользователя. Это дает возможность изучить состояние системы, проверить переменные, журналы или поведение задач на каждом этапе.
Внимание
Стратегия debug используется исключительно в целях разработки и тестирования.
free#
Каждый узел выполняет задачи независимо от других: как только на узле завершается одна задача, он немедленно переходит к следующей, не дожидаясь завершения этой же задачи на других узлах.
Особенности:
Каждому узлу разрешается переходить к следующей задаче, как только он закончил текущую.
Узлы выполняют задачи в одном и том же порядке, но независимо друг от друга, поэтому на разных узлах они могут находиться на разных этапах выполнения.
Ошибки обрабатываются отдельно для каждого узла.
Полезно при работе с разнородными системами или при выполнении долгих независимых операций.
host_pinned#
Каждый узел обрабатывается в рамках отдельного потока, который закреплен за ним и не переключается на другие узлы до завершения всех задач на этом узле.
Как и в стратегии free, задачи на разных узлах выполняются независимо: каждый узел переходит к следующей задаче, как только завершает текущую. Но в, отличие от free, потоки не делятся между хостами – один поток обрабатывает один узел целиком.
Эта стратегия снижает накладные расходы на повторные подключения и обеспечивает стабильное выполнение в нестабильных или ограниченных средах.
linear#
Стратегия выполнения по умолчанию.
Задачи выполняются строго по порядку: каждая задача запускается одновременно на всех узлах, и Ansible переходит к следующей задаче только после того, как текущая завершится на всех узлах. Ошибки на отдельных узлах не блокируют выполнение на других, но влияют на итоговый результат.
Такая стратегия обеспечивает синхронное поведение и предсказуемость выполнения. Подходит для конфигураций, где узлы идентичны и выполнение заданий автоматизации на них должно быть синхронным.