Плагины обратного вызова
- Примеры плагинов обратного вызова
- Включение плагинов обратного вызова
- Установка плагина обратного вызова для
ansible-playbook - Установка плагина обратного вызова для команд ad hoc
- Типы плагинов обратного вызова
- Список плагинов
Плагины обратного вызова позволяют добавлять новые возможности в Ansible при реагировании на события. По умолчанию плагины обратного вызова контролируют большую часть вывода, который вы видите при запуске командной строки, но также могут использоваться для добавления дополнительного вывода, интеграции с другими инструментами и направления событий в хранилище данных. При необходимости, вы можете создать собственные плагины обратного вызова.
Примеры плагинов обратного вызова
Плагин обратного вызова log_plays служит примером записи событий playbook в файл журнала, а плагин обратного вызова mail отправляет электронные письма при сбоях playbook.
Плагин обратного вызова say отвечает синтезированной речью компьютера в связи с событиями playbook.
Включение плагинов обратного вызова
Вы можете активировать пользовательский плагин обратного вызова, в зависимости от его 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.
Установка плагина обратного вызова для команд ad hoc
Команда ansible ad hoc использует отдельный плагин обратного вызова для stdout, поэтому существует дополнительная настройка в Настройках конфигурации Ansible, которую необходимо добавить, чтобы использовать плагин обратного вызова stdout, определённый выше:
[defaults] bin_ansible_callbacks=True
Вы также можете установить это как переменную среды:
export ANSIBLE_LOAD_CALLBACK_PLUGINS=1
Типы плагинов обратного вызова
Существует три типа плагинов обратного вызова:
- Плагины обратного вызова stdout:
-
Эти плагины обрабатывают основной вывод консоли. Только один из них может быть активен.
- Плагины обратного вызова агрегации:
-
Плагины обратного вызова агрегации могут добавлять дополнительный вывод консоли рядом с плагином обратного вызова stdout. Это может быть агрегированная информация в конце выполнения playbook, дополнительный вывод по каждой задаче или что-то ещё.
- Плагины обратного вызова уведомлений:
-
Плагины обратного вызова уведомлений информируют другие приложения, службы или системы. Это может быть всё, от ведения журнала в базах данных до информирования об ошибках в приложениях мгновенных сообщений или отправки электронных писем, когда сервер недоступен.
Список плагинов
Вы можете использовать ansible-doc -t callback -l для просмотра списка доступных плагинов. Используйте ansible-doc -t callback <plugin name> для просмотра документации и примеров, специфичных для плагинов.
См. также
- Плагины действий
-
Плагины действий
- Плагины кэширования
-
Плагины кэширования
- Плагины соединения
-
Плагины соединения
- Плагины инвентаризации
-
Плагины инвентаризации
- Плагины оболочки
-
Плагины оболочки
- Плагины стратегии
-
Плагины стратегии
- Плагины переменных
-
Плагины переменных
- Связь
-
Есть вопросы? Нужна помощь? Хотите поделиться своими идеями? Посетите руководство по общению Ansible
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/plugins/callback.html