回调插件

回调插件允许在响应事件时为 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,然后在 ansible.cfg 中配置 stdout 插件。例如

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 回调旁边添加额外的控制台输出。这可以是 playbook 运行结束时的聚合信息、每个任务的额外输出或其他任何内容。

通知回调插件

通知回调会通知其他应用程序、服务或系统。这可以是任何事情,从记录到数据库、在即时消息应用程序中通知错误,或在服务器无法访问时发送电子邮件。

插件列表

您可以使用 ansible-doc -t callback -l 查看可用插件的列表。使用 ansible-doc -t callback <插件 名称> 查看插件特定的文档和示例。

另请参阅

Action 插件

Action 插件

缓存插件

缓存插件

连接插件

连接插件

清单插件

清单插件

Shell 插件

Shell 插件

策略插件

策略插件

Vars 插件

Vars 插件

交流

有问题吗?需要帮助吗?想分享您的想法吗?请访问 Ansible 交流指南