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>