回调插件

回调插件允许在响应事件时向 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,然后在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 回调旁边添加额外的控制台输出。这可以是在剧本运行结束时的聚合信息,每个任务的额外输出,或任何其他内容。

通知回调插件:

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

插件列表

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

另请参见

操作插件

操作插件

缓存插件

缓存插件

连接插件

连接插件

清单插件

清单插件

Shell 插件

Shell 插件

策略插件

策略插件

变量插件

变量插件

通信

有问题?需要帮助?想分享你的想法?请访问 Ansible 通信指南