0
点赞
收藏
分享

微信扫一扫

自动化运维工具Ansible(19)插件使用

回调插件介绍

ansible回调插件(callback plugins)允许为事件添加一些额外响应。这里的事件包括了执行任务(task)的结果,例如(ok、failed、unreachable、skipped),以及执行剧本(playbook)的过程(start、hosts_matched、task_start、stats)等等。丰富的事件回调使得回调插件能够做非常多的事情,不过,大多数时候他们都用来提供各种各样的输出,或者将日志传输到日志采集器,又或者当遇到特定事件时触发某些特定的任务。


修改默认的回调插件

  • 同时只能有一个回调插件作为主要的管理者,用于输出到屏幕。
  • 如果想替换,应该在这个插件中修改 `CALLBACK_TYPE = stdout`,

之后在 `ansible.cfg` 中配置 stdout 插件。

[defaults]
stdout_callback = json

或使用自定义的回调

[defaults]
stdout_callback = mycallback

默认 情况下这仅对 playbook 生效,如果想让 ad-hoc 方式生效应该在 `ansible.cfg` 文件中做如下设置:

[defaults]
bin_ansible_callbacks = True

验证:

[root@localhost home]# ansible-playbook -i hosts checkhost2.yml --limit dbservers

默认插件不输出信息

自动化运维工具Ansible(19)回调插件使用_ansible

修改json插件输出信息

自动化运维工具Ansible(19)回调插件使用_centos7_02


启用内置的回调插件

大部分情况下,无论是内置的回调插件还是自定义的回调插件,都需要在 `ansible.cfg` 中添加到白名单中,从而才能启用。

[root@localhost home]# vim /etc/ansible/ansible.cfg
callback_whitelist = timer, mail, profile_roles, custom_callback

  • - `timer`  这个回调插件可以计算整个 playbook 的运行时间
  • - `mail`  这个回调插件可以实现发送邮件的功能
  • - `profile_roles` 这个插件是在执行中提添加用时时间
  • - `custom_callback` 是自定义的插件

验证

vim /etc/ansible/ansible.cfg
callback_whitelist = timer

[root@localhost ~]# vim sleep.yml
vim sleep.yml //测试文件
- hosts: all
gather_facts: no
tasks:
- name: sleep 2
command: sleep 2

[root@localhost home]# ansible-playbook -i hosts .yml --limit dbservers

自动化运维工具Ansible(19)回调插件使用_ansible_03


获取帮助

  • ansible-doc -t callback -l` 可以查看当前可用的回调插件列表 ,q退出
  • ansible-doc -t callback <callback plugins name> ` 可查看具体回调插件的帮助文档

比如:

[root@qfedu ~]# ansible-doc -t callback timer
> TIMER (/usr/lib/python2.7/site-packages/ansible/plugins/callback/timer.py)

This callback just adds total play duration to the play stats.

* This module is maintained by The Ansible Community
REQUIREMENTS: whitelist in configuration

CALLBACK_TYPE: aggregate
METADATA:
status:
- preview
supported_by: community


举报

相关推荐

0 条评论