Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ FreeBSD and Nix ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Как использовать handlers (обработчики) в Ansible Playbooks


Как использовать handlers (обработчики) в Ansible Playbooks

Обработчики (handlers) — это как обычные задачи (tasks) в ansible, которые запускаются только при получении уведомления.

В запуске задач обработчиков задействованы две директивы:

  • Notify, которая отправляет сигнал запуска задачам для запуска.
  • Handler, под которой группируются задачи.

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

Задачи обработчика будут выполняться только тогда, когда родительская задача вносит изменения (changed=true).

Задачи обработчика будут запускаться только в конце каждого воспроизведения, но есть варианты запустить их в любом месте, где мы захотим.

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

Имена задач должны быть уникальными, если две задачи имеют одинаковое имя, будет запущена только первая задача.

Задачи будут выполняться в том порядке, в котором они определены в директиве handler, но не в порядке, вызванном директивой notify.


Синтаксис

Чтобы определить задачу-обработчик, следует использовать директиву notify и handler.
Директива notify отправит сигнал задаче-обработчику для выполнения.

Пример - имеем две задачи, определенные в директиве handlers.
Для запуска этих задач используется директива notify, а имя задачи передается в качестве значения.
Ниже приведен пример сценария (playbook). 

Несмотря на то, что есть две задачи в обработчике, выполняется только одна, которая вызывается через директиву notify.


Вызов нескольких задач

В рамках одной директивы уведомления (notify) можно вызывать несколько (handler) задач-обработчиков.
Дайте имя задачам-обработчикам в формате списка YAML.

Списочную нотацию Python также можно использовать для вызова нескольких задач-обработчиков.


Принудительные обработчики

Вы можете установить свойство force_handlers: true в плейбуке, что запустит задачу обработчика даже при возникновении сбоев задач.

Вы также можете задать этот параметр в разных областях:

  • Playbook ⇒ force_handlers: true
  • ansible.cfg file ⇒ force_handlers = true
  • Command line argument ⇒ --force-handlers


Игнорировать ошибки

Вы можете установить свойство ignore_errors: true, которое будет игнорировать невыполненные задачи и выполнять задачи обработчика.


Flushing Handler

Способ заставить запуститься handler в любой указанный момент, а не в конце выполнения.
Этого можно добиться с помощью команды meta module flush_handler.
Flush_handlers запустит все задачи, которые уже отправили сигнал директиве notify.

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.
Весь материал на сайте носит ознакомительный характер,
за его использование другими людьми, автор ответственности не несет.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект