ansible plugins簡介


ansible插件是增強ansible的核心功能的代碼片段,ansible使用插件架構來實現豐富,靈活和可擴展的功能集。

Ansible提供了許多方便的插件,您可以輕松編寫自己的插件。
下邊簡單介紹Ansible包含的各種插件(插件具體用法請參考官方文檔或者ansible-doc):

1、action插件

Action插件與模塊一起執行PlayBook任務所需的操作。它們通常在后台自動執行,在模塊執行之前進行必要的工作。
“normal” action插件 用於尚未擁有action插件的模塊。
您可以啟用一個自定義操作插件,方法是將其放置到與role中的play相鄰的action_plugins目錄中,
當使用關聯模塊時,Action插件默認執行;不需要采取任何行動

2、cache插件

緩存插件實現的后端緩存機制,可以使ansible存儲獲得的facts和inventory元數據,不必再從源頭檢索這些數據,而降低性能。
默認的緩存插件是memory plugin,它只緩存ansible目前執行的數據,其他持久存儲的插件也可以緩存數據

3、callback插件

回調插件可以在響應事件時向Ansible添加新行為。
默認情況下,回調插件控制運行命令行程序時看到的大部分輸出,
但也可用於添加其他輸出,與其他工具集成並將事件整理到存儲后端。

4、inventory插件

清單插件允許用戶指向數據源,以便通過-i  /path/to/file和/ 或-i 'host1,host2 命令行參數
或其他配置來源編譯Ansible用於定位任務的主機清單。
個人覺得ini最好用

5、lookup插件

查找插件允許Ansible從外部來源訪問數據。這可以包括:聯系外部數據存儲和服務,讀取文件系統。
查找插件返回的數據可以使用Ansible中的標准模板系統提供,通常用於從這些系統中加載包含信息的變量或模板。
lookups是Jinja2模板語言的Ansible特定擴展。

6、shell插件

Shell插件可以確保Ansible運行的基本命令格式正確,可與目標機器一起使用,並允許用戶配置某些與Ansible執行任務相關的行為

7、strategy插件

策略插件通過處理play和hosts調度 來控制play執行的流程。

8、vars插件

Vars插件將額外的變量注入到Ansible中運行,這些運行不是來自庫存源,劇本或命令行。
Playbook使用vars插件構建像'host_vars'和'group_vars'的工作目錄。
Vars插件在Ansible 2.0中部分實現,並被重寫為從Ansible 2.4開始全面實施。
Ansible附帶的host_group_vars插件可以從主機變量和組變量中讀取變量。

9、filters

Ansible中的過濾器來自Jinja2,用於轉換模板表達式中的數據。
Jinja2附帶很多過濾器。請參閱官方Jinja2模板文檔中的內置過濾器。
考慮到 模板產生 在Ansible控制器上,而不是在任務的目標主機上,所以過濾器也在控制器上執行,因為它們處理本地數據。
除了jinja2,Ansible附帶自己的產品,並允許用戶添加他們自己的自定義過濾器。
 

10、tests

Jinja中的tests是評估模板表達式,並返回True或False的一種方式,Jinja附帶許多這些。在官方Jinja模板文檔中查看內置測試。
tests和filters之間的主要區別在於Jinja tests用於比較,而filters用於數據處理,並且在jinja中有不同的應用程序,如map()和select()來選擇列表中的項目。
像所有模板一樣,tests總是在Ansible控制器上執行,而不是在任務的目標上執行,因為他們測試本地數據。
除了jinjia2 tests,Ansible提供更多功能,用戶可以自己輕松創建。
 

11、插件過濾配置

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM