HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-19
1 <p>Долго ждать, пока плейбук отработает на десятках серверов - та ещё боль. Но Ansible можно ускорить, если правильно его настроить. Ловите 5 простых способов для новичка, которые действительно сработают:</p>
1 <p>Долго ждать, пока плейбук отработает на десятках серверов - та ещё боль. Но Ansible можно ускорить, если правильно его настроить. Ловите 5 простых способов для новичка, которые действительно сработают:</p>
2 <p><strong>1.Используйте serial для пошагового развертывания</strong></p>
2 <p><strong>1.Используйте serial для пошагового развертывания</strong></p>
3 <p>Если у вас много серверов, выполните плейбук не на всех сразу, а по группам. Добавьте в задачи параметр:</p>
3 <p>Если у вас много серверов, выполните плейбук не на всех сразу, а по группам. Добавьте в задачи параметр:</p>
4 <p>- hosts: all</p>
4 <p>- hosts: all</p>
5 <p>serial: 10</p>
5 <p>serial: 10</p>
6 <p>Таким образом, задачи будут выполняться на 10 серверах одновременно, а остальные начнут выполняться после завершения первой группы. Это снижает нагрузку на сеть и серверы.</p>
6 <p>Таким образом, задачи будут выполняться на 10 серверах одновременно, а остальные начнут выполняться после завершения первой группы. Это снижает нагрузку на сеть и серверы.</p>
7 <p><strong>2.Оптимизируйте модули</strong></p>
7 <p><strong>2.Оптимизируйте модули</strong></p>
8 <p>Используйте специализированные модули вместо общих command или shell. Например, для установки пакетов - apt или yum.</p>
8 <p>Используйте специализированные модули вместо общих command или shell. Например, для установки пакетов - apt или yum.</p>
9 <p>- name: Установить nginx</p>
9 <p>- name: Установить nginx</p>
10 <p>ansible.builtin.apt:</p>
10 <p>ansible.builtin.apt:</p>
11 <p>name: nginx</p>
11 <p>name: nginx</p>
12 <p>state: present</p>
12 <p>state: present</p>
13 <p>Они автоматически обрабатывают ошибки и не требуют проверки состояния вручную.</p>
13 <p>Они автоматически обрабатывают ошибки и не требуют проверки состояния вручную.</p>
14 <p><strong>3.Отключите сбор фактов, если он не нужен</strong></p>
14 <p><strong>3.Отключите сбор фактов, если он не нужен</strong></p>
15 <p>По умолчанию Ansible собирает факты о каждом сервере перед выполнением плейбука, что занимает некоторое время. Если вам не нужны эти факты, отключите их:</p>
15 <p>По умолчанию Ansible собирает факты о каждом сервере перед выполнением плейбука, что занимает некоторое время. Если вам не нужны эти факты, отключите их:</p>
16 <p>- hosts: all</p>
16 <p>- hosts: all</p>
17 <p>gather_facts: no</p>
17 <p>gather_facts: no</p>
18 <p>Или соберите их один раз и используйте повторно.</p>
18 <p>Или соберите их один раз и используйте повторно.</p>
19 <p><strong>4.Уменьшите количество задач</strong></p>
19 <p><strong>4.Уменьшите количество задач</strong></p>
20 <p>Иногда задачи можно объединить. Например, вместо многократного вызова установки пакетов объедините их в список:</p>
20 <p>Иногда задачи можно объединить. Например, вместо многократного вызова установки пакетов объедините их в список:</p>
21 <p>- name: Установить несколько пакетов</p>
21 <p>- name: Установить несколько пакетов</p>
22 <p>ansible.builtin.apt:</p>
22 <p>ansible.builtin.apt:</p>
23 <p>name:</p>
23 <p>name:</p>
24 <p>- nginx</p>
24 <p>- nginx</p>
25 <p>- curl</p>
25 <p>- curl</p>
26 <p>- git</p>
26 <p>- git</p>
27 <p>state: present</p>
27 <p>state: present</p>
28 <p>Это сокращает общее время выполнения.</p>
28 <p>Это сокращает общее время выполнения.</p>
29 <p><strong>5.Кэшируйте данные</strong></p>
29 <p><strong>5.Кэшируйте данные</strong></p>
30 <p>Чтобы Ansible не собирал одни и те же факты каждый раз, включите кэширование:</p>
30 <p>Чтобы Ansible не собирал одни и те же факты каждый раз, включите кэширование:</p>
31 <p>gather_facts: yes</p>
31 <p>gather_facts: yes</p>
32 <p>fact_caching: jsonfile</p>
32 <p>fact_caching: jsonfile</p>
33 <p>fact_caching_connection: /tmp/ansible_facts</p>
33 <p>fact_caching_connection: /tmp/ansible_facts</p>
34 <p>Это сократит количество повторных выполнений идентичных задач.</p>
34 <p>Это сократит количество повторных выполнений идентичных задач.</p>
35 <p>Пробуйте эти рекомендации, и ваши плейбуки начнут работать быстрее.<strong>Время выполнения плейбуков Ansible зависит от множества конфигурационных параметров,</strong>оптимальные значения которых определяются спецификой конкретной ИТ-среды и применяемых в ней автоматизаций.</p>
35 <p>Пробуйте эти рекомендации, и ваши плейбуки начнут работать быстрее.<strong>Время выполнения плейбуков Ansible зависит от множества конфигурационных параметров,</strong>оптимальные значения которых определяются спецификой конкретной ИТ-среды и применяемых в ней автоматизаций.</p>
36 <p>Мы показали только 5 базовых шагов, всё остальное - на курсе<strong><a>"Ansible: Infrastructure as Code".</a></strong></p>
36 <p>Мы показали только 5 базовых шагов, всё остальное - на курсе<strong><a>"Ansible: Infrastructure as Code".</a></strong></p>