ansible plugins简介

ansible插件是加强ansible的核心功能的代码片断,ansible使用插件架构来实现丰富,灵活和可扩展的功能集。html

Ansible提供了许多方便的插件,您能够轻松编写本身的插件。
下边简单介绍Ansible包含的各类插件(插件具体用法请参考官方文档或者ansible-doc):

一、action插件

Action插件与模块一块儿执行PlayBook任务所需的操做。它们一般在后台自动执行,在模块执行以前进行必要的工做。
“normal” action插件 用于还没有拥有action插件的模块。
您能够启用一个自定义操做插件,方法是将其放置到与role中的play相邻的action_plugins目录中,
当使用关联模块时,Action插件默认执行;不须要采起任何行动

二、cache插件

缓存插件实现的后端缓存机制,可使ansible存储得到的facts和inventory元数据,没必要再从源头检索这些数据,而下降性能。
默认的缓存插件是memory plugin,它只缓存ansible目前执行的数据,其余持久存储的插件也能够缓存数据

三、callback插件

回调插件能够在响应事件时向Ansible添加新行为。
默认状况下,回调插件控制运行命令行程序时看到的大部分输出,
但也可用于添加其余输出,与其余工具集成并将事件整理到存储后端。

四、inventory插件

清单插件容许用户指向数据源,以便经过-i  /path/to/file和/ 或-i 'host1,host2 命令行参数
或其余配置来源编译Ansible用于定位任务的主机清单。
我的以为ini最好用

五、lookup插件

查找插件容许Ansible从外部来源访问数据。这能够包括:联系外部数据存储和服务,读取文件系统。
查找插件返回的数据可使用Ansible中的标准模板系统提供,一般用于从这些系统中加载包含信息的变量或模板。
lookups是Jinja2模板语言的Ansible特定扩展。

六、shell插件

Shell插件能够确保Ansible运行的基本命令格式正确,可与目标机器一块儿使用,并容许用户配置某些与Ansible执行任务相关的行为

七、strategy插件

策略插件经过处理play和hosts调度 来控制play执行的流程。

八、vars插件

Vars插件将额外的变量注入到Ansible中运行,这些运行不是来自库存源,剧本或命令行。
Playbook使用vars插件构建像'host_vars'和'group_vars'的工做目录。
Vars插件在Ansible 2.0中部分实现,并被重写为从Ansible 2.4开始全面实施。
Ansible附带的host_group_vars插件能够从主机变量和组变量中读取变量。

九、filters

Ansible中的过滤器来自Jinja2,用于转换模板表达式中的数据。
Jinja2附带不少过滤器。请参阅官方Jinja2模板文档中的内置过滤器。
考虑到 模板产生 在Ansible控制器上,而不是在任务的目标主机上,因此过滤器也在控制器上执行,由于它们处理本地数据。
除了jinja2,Ansible附带本身的产品,并容许用户添加他们本身的自定义过滤器。
 

十、tests

Jinja中的tests是评估模板表达式,并返回True或False的一种方式,Jinja附带许多这些。在官方Jinja模板文档中查看内置测试。
tests和filters之间的主要区别在于Jinja tests用于比较,而filters用于数据处理,而且在jinja中有不一样的应用程序,如map()和select()来选择列表中的项目。
像全部模板同样,tests老是在Ansible控制器上执行,而不是在任务的目标上执行,由于他们测试本地数据。
除了jinjia2 tests,Ansible提供更多功能,用户能够本身轻松建立。
 

十一、插件过滤配置

Ansible 2.5为站点管理员添加了模块黑名单,用于禁用Ansible的某些模块。
这是经过yaml配置文件配置的(默认为/etc/ansible/plugin_filters.yml)。该文件的格式是:
---
filter_version: '1.0'
module_blacklist:
# Deprecated
- docker
# We only allow pip, not easy_install
- easy_install
相关文章
相关标签/搜索