Ansible特點、架構及工作流程介紹

ansible介紹

國內的中文站點:Ansible中文權威指南

ansible是新出現的自動化運維工具,基於Python開發,集合了衆多運維工具(puppet、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。

ansible是基於 paramiko 開發的,並且基於模塊化工作,本身沒有批量部署的能力。真正具有批量部署的是ansible所運行的模塊,ansible只是提供一種框架。ansible不需要在遠程主機上安裝client/agents,因爲它們是基於ssh來和遠程主機通訊的。ansible目前已經已經被紅帽官方收購,是自動化運維工具中大家認可度最高的,並且上手容易,學習簡單。是每位運維工程師必須掌握的技能之一。

ansible特點

1、部署簡單,只需在主控端部署Ansible環境,被控端無需做任何操作;
2、默認使用SSH協議對設備進行管理;
3、有大量常規運維操作模塊,可實現日常絕大部分操作。
4、配置簡單、功能強大、擴展性強;
5、支持API及自定義模塊,可通過Python輕鬆擴展;
6、通過Playbooks來定製強大的配置、狀態管理;
7、輕量級,無需在客戶端安裝agent,更新時,只需在操作機上進行一次更新即可;
8、提供一個功能強大、操作性強的Web管理界面和REST API接口——AWX平臺。

ansible架構

Ansible: Ansible核心程序。
**HostInventory:**記錄由Ansible管理的主機信息,包括端口、密碼、ip等。
Playbooks:“劇本”YAML格式文件,多個任務定義在一個文件中,定義主機需要調用哪些模塊來完成的功能。
**CoreModules:**核心模塊,主要操作是通過調用核心模塊來完成管理任務。
**CustomModules:**自定義模塊,完成核心模塊無法完成的功能,支持多種語言。
**ConnectionPlugins:**連接插件,Ansible和Host通信使用。

ansible任務執行

####ansible任務執行模式

Ansible系統由控制主機對被管節點的操作方式可分爲兩類,即ad-hoc和playbook:

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

playbook模式是Ansible主要管理方式,也是Ansible功能強大的關鍵所在。playbook通過多個task集合完成一類功能,如Web服務的安裝部署、數據庫服務器的批量備份等。可以簡單地把playbook理解爲通過組合多條ad-hoc操作作的配置文件。

###Ansible命令執行過程

Ansiblie命令執行過程

1、加載自己的配置文件 默認/etc/ansible/ansible.cfg;
2、查找對應的主機配置文件,找到要執行的主機或者組;
3、加載自己對應的模塊文件,如command;
4、通過ansible將模塊或命令生成對應的臨時py文件,並將該文件傳輸至遠程服務器的;
5、對應執行用戶的家目錄的.ansible/tmp/XXX/XXX.PY文件;
6、給文件+x執行;
7、執行並返回結果;
8、刪除臨時py文件,sleep 0退出。

​ 簡單理解就是Ansible在運行時,首先讀取ansible.cfg中的配置,根據規則獲取Inventory中的管理主機列表,並行的在這些主機中執行配置的任務,最後等待執行返回的結果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章