ansible 插件介绍和任务执行时间插件

2019-07-04 0 By admin

插件是增强Ansible核心功能的代码片段。Ansible使用插件架构来实现丰富,灵活和可扩展的功能集。
Ansible附带了许多方便的插件,您可以轻松编写自己的插件。

一、action

action插件是在同名的modules之前运行的,且是在本地执行。目录提供的一些action插件在/usr/lib/python2.6/site-packages/ansible/plugins/action/目录中。

二、cache

cache插件用于保留“fact”数据的操作。目前提供的方式是redis,memcached,memory,jsonfile,pickle,yml。这些插件可以在/usr/lib/python2.6/site-packages/ansible/plugins/cache找的到。

三、callback

callback 插件可以在事件执行的时候增加新行为,目前提供的一些callback在/usr/lib/python2.6/site-packages/ansible/plugins/callback/目录中。

四、connection

ansible通过使用connection插件来连接远程系统,可以通过配置connection来选择用哪种方式连接远程系统。ansible提供的connection插件可以在/usr/lib/python2.6/site-packages/ansible/plugins/connection找的到。

五、filter

filter插件允许你在playbook和模版内操作数据,ansible使用filter plugin来扩展jinja2模版的功能。插件在/usr/lib/python2.6/site-packages/ansible/plugins/filter目录中
使用方式: “{{ statement | cloud_truth }}”

六、lookup

用于从外部数据中提取数据并返回到变量或参数中。比如循环with_*的用法。插件在/usr/lib/python2.6/site-packages/ansible/plugins/lookup/
使用方式:{{ lookup(‘file’, ‘/etc/foo.txt’) }}

七、shell

很像connection插件,ansible使用shell插件在shell环境中执行,目前支持的shell有csh,fish,powershell,sh。这些插件可以在/usr/lib/python2.6/site-packages/ansible/plugins/shell找的到

八、strategy

控制任务执行流程,插件在/usr/lib/python2.6/site-packages/ansible/plugins/strategy目录

九、terminal

用来连接cli的硬件设备,像交换机,路由器,防火墙。插件在/usr/lib/python2.6/site-packages/ansible/plugins/terminal/目录。

十、test

用于验证数据,属于jinja2的功能

十一、vars

用来解析主机清单中的变量,像host_vars, group_vars 都是有var插件来完成的。插件在/usr/lib/python2.6/site-packages/ansible/inventory/vars_plugins目录


十二、为任务添加时间信息

插件名称:profile_tasks
用于计算单个任务和总体执行时间。
时间格式:任务执行时间 (上个任务耗时) playbook执行了多少时间
配置脚本启用:
[defaults]
allback_whitelist = profile_tasks

编辑 ansible.cfg 文件,添加以上内容