Back to questions
Senior
7
Как ускорить выполнение Ansible плейбуков?
Companies where asked
S8 Capital
Answer from AI
sobes.tech AI
Чтобы ускорить выполнение Ansible плейбуков, можно использовать несколько подходов:
- Параллелизм: увеличить параметр
forksв конфигурации Ansible (по умолчанию 5), чтобы запускать больше задач одновременно. - Использование
asyncиpoll: запускать долгие задачи асинхронно, чтобы не блокировать выполнение плейбука. - Оптимизация инвентаря: исключить ненужные хосты, использовать динамический инвентарь для актуальности.
- Кэширование фактов: использовать
fact_caching, чтобы не собирать факты при каждом запуске. - Минимизация задач: объединять задачи, избегать избыточных вызовов модулей.
- Использование
check_modeиchanged_when: чтобы избежать ненужных изменений и повторных запусков. - Использование
delegate_toиrun_once: для задач, которые нужно выполнить только один раз.
Пример увеличения параллелизма в ansible.cfg:
[defaults]
forks = 20
fact_caching = jsonfile
fact_caching_connection = /tmp/ansible_facts
fact_caching_timeout = 86400
Также стоит профилировать плейбук с помощью ANSIBLE_DEBUG=true и --profile для выявления узких мест.