回调插件
回调插件允许在响应事件时向 Ansible 添加新行为。默认情况下,回调插件控制您在运行命令行程序时看到的大部分输出,但也可以用于添加其他输出、与其他工具集成并将事件编组到存储后端。如有必要,您可以 创建自定义回调插件.
回调插件示例
The log_plays 回调是将剧本事件记录到日志文件的示例,而 mail 回调在剧本失败时发送电子邮件。
The say 回调会根据剧本事件以合成语音进行响应。
启用回调插件
您可以通过将自定义回调放到剧本旁边、角色内或放到 ansible.cfg 中配置的回调目录源中的一个目录来激活它。
插件按字母数字顺序加载。例如,在名为 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。
为临时命令设置回调插件
The 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>
查看特定于插件的文档和示例。