Spec-Zone.ru › Ansible

Плагины обратного вызова

  • Примеры плагинов обратного вызова
  • Включение плагинов обратного вызова
  • Настройка плагина обратного вызова для ansible-playbook
  • Настройка плагина обратного вызова для разовых команд
  • Типы плагинов обратного вызова
  • Список плагинов

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

Примеры плагинов обратного вызова

Плагин обратного вызова log_plays показывает, как записывать события плейбука в файл журнала, а плагин mail отправляет электронные письма при сбоях плейбука.

Плагин обратного вызова say сообщает о событиях плейбука с помощью синтезированной компьютерной речи.

Включение плагинов обратного вызова

Вы можете активировать пользовательский плагин обратного вызова в зависимости от его свойства NEEDS_ENABLED: для этого поместите его в один из каталогов обратного вызова, указанных в ansible.cfg, или в коллекцию и укажите его в конфигурации по FQCN.

Плагины загружаются в алфавитном порядке. Например, плагин, реализованный в файле с именем 1_first.py, будет запущен раньше плагина из файла с именем 2_second.py.

Большинство поставляемых с Ansible плагинов обратного вызова по умолчанию отключены. Чтобы они работали, их нужно включить в файле ansible.cfg. Например:

#callbacks_enabled = timer, mail, profile_roles, collection_namespace.collection_name.custom_callback

Настройка плагина обратного вызова для ansible-playbook

Только один плагин может управлять основным выводом в консоль. Чтобы заменить плагин по умолчанию, следует определить CALLBACK_TYPE = stdout в подклассе, а затем настроить плагин stdout в файле ansible.cfg. Например:

stdout_callback = dense

или для моего пользовательского плагина обратного вызова:

stdout_callback = mycallback

По умолчанию это влияет только на ansible-playbook.

Настройка плагина обратного вызова для разовых команд

Разовая команда ansible использует для вывода в stdout другой плагин обратного вызова, поэтому в параметры конфигурации Ansible нужно добавить ещё одну настройку, чтобы использовать указанный выше плагин обратного вызова stdout:

[defaults]
bin_ansible_callbacks=True

Также это можно задать с помощью переменной среды:

export ANSIBLE_LOAD_CALLBACK_PLUGINS=1

Типы плагинов обратного вызова

Существует три типа плагинов обратного вызова:

Плагины обратного вызова stdout:

Эти плагины обрабатывают основной вывод в консоль. Одновременно может быть активен только один такой плагин. Они всегда первыми получают событие; остальные плагины обратного вызова получают его в порядке настройки.

Агрегирующие плагины обратного вызова:

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

Плагины обратного вызова для уведомлений:

Плагины обратного вызова для уведомлений информируют другие приложения, службы или системы. Они могут выполнять самые разные задачи: записывать данные в базы данных, сообщать об ошибках в приложениях для обмена мгновенными сообщениями или отправлять электронные письма, когда сервер недоступен.

Список плагинов

Чтобы просмотреть список доступных плагинов, используйте ansible-doc -t callback -l. Чтобы ознакомиться с документацией и примерами для конкретного плагина, используйте ansible-doc -t callback <plugin name>.

См. также

Плагины действий

Плагины действий

Плагины кэша

Плагины кэша

Плагины подключений

Плагины подключений

Плагины инвентаризации

Плагины инвентаризации

Плагины оболочки

Плагины оболочки

Плагины стратегий

Плагины стратегий

Плагины переменных

Плагины переменных

Общение

Есть вопросы? Нужна помощь? Хотите поделиться своими идеями? Посетите руководство по общению Ansible

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/plugins/callback.html

Spec-Zone.ru

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