Блог Слёрм

5 простых шагов, как сократить время выполнения плейбуков Ansible

Долго ждать, пока плейбук отработает на десятках серверов — та ещё боль. Но Ansible можно ускорить, если правильно его настроить. Ловите 5 простых способов для новичка, которые действительно сработают:

1.Используйте serial для пошагового развертывания

Если у вас много серверов, выполните плейбук не на всех сразу, а по группам. Добавьте в задачи параметр:

- hosts: all

serial: 10

Таким образом, задачи будут выполняться на 10 серверах одновременно, а остальные начнут выполняться после завершения первой группы. Это снижает нагрузку на сеть и серверы.

2.Оптимизируйте модули

Используйте специализированные модули вместо общих command или shell. Например, для установки пакетов — apt или yum.

- name: Установить nginx

ansible.builtin.apt:

name: nginx

state: present

Они автоматически обрабатывают ошибки и не требуют проверки состояния вручную.

3.Отключите сбор фактов, если он не нужен

По умолчанию Ansible собирает факты о каждом сервере перед выполнением плейбука, что занимает некоторое время. Если вам не нужны эти факты, отключите их:

- hosts: all

gather_facts: no

Или соберите их один раз и используйте повторно.

4.Уменьшите количество задач

Иногда задачи можно объединить. Например, вместо многократного вызова установки пакетов объедините их в список:

- name: Установить несколько пакетов

ansible.builtin.apt:

name:

- nginx

- curl

- git

state: present

Это сокращает общее время выполнения.

5.Кэшируйте данные

Чтобы Ansible не собирал одни и те же факты каждый раз, включите кэширование:

gather_facts: yes

fact_caching: jsonfile

fact_caching_connection: /tmp/ansible_facts

Это сократит количество повторных выполнений идентичных задач.

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

Мы показали только 5 базовых шагов, всё остальное — на курсе «Ansible: Infrastructure as Code».
2025-04-05 00:00 Ansible