Ansible的基本概念

2021-10-02 14:07:12 字數 4411 閱讀 5373

1、ansible是近年比較火的一款運維自動化工具,其主要功能是幫運維實現it工作的自動化,降低人為操作出現的失誤、提高業務自動化率、提公升運維工作效率,常用於軟體部署自動化,配置自動化、管理自動化、持續整合等。類似的工具有puppet、saltstack。

2、ansible 是個與 puppet, saltstack, chef 並駕齊驅的組態設定 (infrastructure as code) 工具,其簡單易用的特性讓人愛不釋手,在 devops 界更占有一席之地。

3、ansible 提供一種最簡單的方式用於發布、管理和編排計算機系統的工具,你可在數分鐘內搞定。

4、ansible 是乙個模型驅動的配置管理器,支援多節點發布、遠端任務執行。預設使用 ssh 進行遠端連線。無需在被管理節點上安裝附加軟體,可使用各種程式語言進行擴充套件。

5、ansible是乙個用來批量部署遠端主機上服務的工具。這裡「遠端主機(remote host)」是指任何可以通過ssh登入的主機,所以它既可以是遠端虛擬機器或物理機,也可以是本地主機。簡要總結就是:ansible是乙個用來遠端管理伺服器的工具軟體。

6、ansible通過ssh協議實現管理節點與遠端節點之間的通訊。理論上來說,只要能通過ssh登入到遠端主機來完成的操作,都可以通過ansible實現批量自動化操作。

7、涉及管理操作:複製檔案、安裝服務、服務啟動停止管理、配置管理等。
(1)

擁有模組化的設計,ansible能夠呼叫特定的模組來完成特定任務 ,本身是核心元件,短小精悍 ;
(2)

ansible是基於python語言實現的,由paramiko (python 的乙個可併發連線 ssh 主機功能庫 ) , pyyaml和jinja2 ( 模板化 ) 三個關鍵模組實現;
(3)

ansible的部署比較簡單,agentless 無客戶端工具;

以主從模式工作;

支援自定義模組功能;

支援playbook劇本,連續任務按先後設定順序完成;

期望每個命令具有冪等性:

(4)

ansible基於python語言實現,由paramiko和pyyaml兩個關鍵模組構建。

1)安裝部署過程特別簡單,學習曲線很平坦。

2)不需要單獨安裝客戶端,知識利用現有的sshd服務(協議)即可。

3)不需要服務端(no servers)。

4)ansible playbook,採用yaml配置,提前編排自動化任務。

5)ansible功能模組較多,對於自動化的場景支援豐富。

ansible不需要單獨安裝客戶端,也不需要啟動服務。

ansible是python中的一套完整的自動化執行任務模組。

ansible playbook採用yaml配置,對於自動化任務執行過程一目了然。

1、安裝部署過程簡單,只需在主控端部署ansible環境,被控端無需做任何操作;
2、預設使用ssh協議對裝置進行管理;
3、有大量常規運維操作模組,可實現日常絕大部分操作;
4、配置簡單、功能強大、擴充套件性強;
5、支援api及自定義模組,可通過python輕鬆擴充套件;
6、通過playbooks來定製強大的配置、狀態管理;
7、輕量級,無需在客戶端安裝agent,更新時,只需在操作機上進行一次更新即可;
8、提供乙個功能強大、操作性強的web管理介面和rest api介面——awx平台。

主要模組如下

(1)

1、ansible:ansible核心程式。

2、hostinventory:記錄由ansible管理的主機資訊,包括埠、密碼、ip等。

3、playbooks:「劇本」yaml格式檔案,多個任務定義在乙個檔案中,定義主機需要呼叫哪些模組來完成的功能。

4、coremodules:核心模組,主要操作是通過呼叫核心模組來完成管理任務。

5、custommodules:自定義模組,完成核心模組無法完成的功能,支援多種語言。

6、connectionplugins:連線外掛程式,ansible和host通訊使用。

(2)

1、連線外掛程式connectior plugins用於連線主機 用來連線被管理端

2、核心模組 core modules 連線主機實現操作, 它依賴於具體的模組來做具體的事情

3、自定義模組 custom modules,根據自己的需求編寫具體的模組

4、外掛程式 plugins,完成模組功能的補充

5、劇本 playbooks,ansible的配置檔案,將多個任務定義在劇本中,由ansible自動執行

6、主機清單 inventor,定義ansible需要操作主機的範圍

1、ansible

是ansible的命令工具,核心執行工具;一次性或臨時執行的操作都是通過該命令執行。
2、ansible playbook

任務劇本(又稱任務集),編排定義ansible任務集的配置檔案,由ansible順序依次執行,yaml格式。
3、inventory

ansible管理主機的清單,預設是/etc/ansible/hosts檔案。
4、modules

ansible執行命令的功能模組,ansible2.3版本為止,共有1039個模組。還可以自定義模組。
5、plugins

外掛程式,模組功能的補充,常有連線型別外掛程式,迴圈外掛程式,變數外掛程式,過濾外掛程式,外掛程式功能用的較少。
6、api

提供給第三方程式呼叫的應用程式程式設計介面。

ansible 系統由控制主機對被管節點的操作方式可分為兩類,即adhoc和playbook:
1、ad-hoc模式(點對點模式)

使用單個模組,支援批量執行單條命令。ad-hoc 命令是一種可以快速輸入的命令,而且不需要儲存起來的命令。就相當於bash中的一句話shell。

2、playbook模式(劇本模式)

是ansible主要管理方式,也是ansible功能強大的關鍵所在。playbook通過多個task集合完成一類功能,如web服務的安裝部署、資料庫伺服器的批量備份等。可以簡單地把playbook理解為通過組合多條ad-hoc操作的配置檔案。

3、簡單說就是ansible在執行過程當中, 首先讀取ansible.cfg中的配置檔案, 根據規則獲取inventory中的管理主機列表, 並行的在這些主機中執行配置的任務, 最後等待執行返回的結果。

(1)載入自己的配置檔案,預設/etc/ansible/ansible.cfg;

(2)查詢對應的主機配置檔案,找到要執行的主機或者組;

(3)載入自己對應的模組檔案,如 command;

(4)通過ansible將模組或命令生成對應的臨時py檔案(python指令碼), 並將該檔案傳輸至遠端伺服器;

(5)對應執行使用者的家目錄的.ansible/tmp/***/***.py檔案;

(6)給檔案 +x 執行許可權;

(7)執行並返回結果;

(8)刪除臨時py檔案,sleep 0退出;

基本概念 C 基本概念

由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...

基本概念 數控系統基本概念

第一章 基本概念 數控工具機cnc是一種按事先編制好的加工零件程式進行加工的高效 自動化加工裝置。是 computer numerical control machine tools 的簡稱。數控工具機較好地解決了複雜 精密 小批量 多品種的零件加工問題,是一種柔性的 高效能的自動化工具機。西門子系...

pwm的基本概念

脈寬調變pwm是開關型穩壓電源中的術語。這是按穩壓的控制方式分類的,除了pwm型,還有pfm型和pwm pfm混合型。脈寬寬度調製式 pwm 開關型穩壓電路是在控制電路輸出頻率不變的情況下,通過電壓反饋調整其占空比,從而達到穩定輸出電壓的目的。pwm技術的基本原理 隨著電子技術的發展,出現了多種pw...