Как ускорить Ansible: 10 способов оптимизации. Часть 1
2026-02-19 18:21 Diff

На больших инфраструктурах Ansible может работать медленно. Как ускорить выполнение плейбуков? Разбираем на практике:

1. Оптимизация SSH-соединения

✅ Отключите SSH-проверки

Добавьте в ansible.cfg:

[ssh_connection]

ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s -o ConnectTimeout=5 -o GSSAPIAuthentication=no

pipelining = true

Что это даёт?

  • ControlMaster — переиспользование SSH-соединений;
  • pipelining — ускорение выполнения модулей.

✅ Используйте persistent-соединения

[persistent_connection]

connect_timeout = 30

command_timeout = 60

2. Параллельное выполнение задач

✅ Запускайте задачи параллельно (-f N)

ansible-playbook playbook.yml -f 20 # 20 потоков

✅ Используйте async для долгих задач

- name: Долгая операция

command: /some/long/script.sh

async: 300 # таймаут в секундах

poll: 0 # не ждать завершения

3. Оптимизация инвентаря

✅ Динамический инвентарь

Используйте генерацию инвентаря из облачных провайдеров (AWS, GCP) или CMDB.

✅ Группировка хостов

Разбивайте хосты на группы ([web], [db]) для точечного применения плейбуков.

4. Кэширование фактов (facts)

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

- hosts: all

gather_facts: false

✅ Кэшируйте факты в Redis/JSON

В ansible.cfg:

[defaults]

fact_caching = jsonfile

fact_caching_connection = /tmp/ansible_facts

5. Оптимизация самих плейбуков

✅ Используйте meta: flush_handlers

- name: Apply config

template: src=config.j2 dest=/etc/app.conf

notify: restart app

- meta: flush_handlers # принудительно запускает handlers

✅ Замените command/shell на специализированные модули

❌ Плохо:

- command: apt install nginx

✅ Лучше:

- apt: name=nginx state=present

Еще 5 способов оптимизации Ansible расскажем в следующий раз, а пока напомним — курс «Ansible: Infrastructure as Code» стартует через 10 дней. Если вы планировали освоить инструмент, который автоматизирует рутину и даст вам возможность работать эффективнее, быстрее и интереснее, самое время занять место на курсе.

👉 До 21 апреля действует спеццена! Все подробности — по ссылке.

Читать вторую часть статьи по ссылке.