Spec-Zone.ru › Ansible 2.9

Управление выполнением playbook: стратегии и многое другое

По умолчанию Ansible выполняет каждую задачу на всех узлах, затронутых playbook, прежде чем начать следующую задачу на любом узле, используя 5 вилок. Если вы хотите изменить это поведение по умолчанию, вы можете использовать другой плагин стратегии, изменить количество вилок или применить один из нескольких ключевых слов уровня playbook, таких как serial.

  • Выбор стратегии
  • Установка количества вилок
  • Использование ключевых слов для управления выполнением

Выбор стратегии

Поведение по умолчанию, описанное выше, — это линейная стратегия. Ansible предлагает другие стратегии, включая отладочную стратегию (см. также Отладчик playbook) и свободную стратегию, которая позволяет каждому узлу работать до конца playbook так быстро, как только возможно:

- hosts: all
  strategy: free
  tasks:
  ...

Вы можете выбрать другую стратегию для каждого playbook, как показано выше, или установить предпочитаемую стратегию глобально в ansible.cfg, в секции defaults.

[defaults]
strategy = free

Все стратегии реализованы как плагины стратегии. Для получения подробной информации о работе каждого плагина стратегии ознакомьтесь с соответствующей документацией.

Установка количества вилок

Если у вас есть достаточная вычислительная мощность и вы хотите использовать больше вилок, вы можете установить их количество в ansible.cfg.

[defaults]
forks = 30

или передать его в командной строке: ansible-playbook -f 30 my_playbook.yml.

Использование ключевых слов для управления выполнением

Несколько ключевых слов уровня playbook также влияют на выполнение playbook. Наиболее распространенное из них — serial, которое устанавливает количество, процент или список количества узлов, которыми вы хотите управлять одновременно. Установка serial с любой стратегией указывает Ansible на «пакетную» обработку узлов, завершая playbook для заданного количества или процента узлов, прежде чем начинать следующий «пакет». Это особенно полезно для постепенных обновлений.

Второе ключевое слово, влияющее на выполнение, — throttle, которое также можно использовать на уровне блока и задачи. Это ключевое слово ограничивает количество рабочих процессов до максимального значения, заданного через настройку вилок или serial. Это может быть полезно для ограничения задач, которые могут быть ресурсоемкими или взаимодействовать с API, имеющим ограничения по скорости:

tasks:
- command: /path/to/cpu_intensive_command
  throttle: 1

Другие ключевые слова, влияющие на выполнение playbook, включают ignore_errors, ignore_unreachable, и any_errors_fatal. Обратите внимание, что эти ключевые слова не являются стратегиями. Это директив или параметры уровня playbook.

См. также

О Playbook
Введение в Playbook
Роли
Организация Playbook по ролям
Список рассылки пользователей
У вас есть вопрос? Обратитесь к группе Google!
irc.freenode.net
#ansible IRC чат-канал

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/user_guide/playbooks_strategies.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API