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
相關文章
相關標籤/搜索