Ansbile基本介紹
??Ansible 是一個開源的基于 OpenSSH 的自動化配置管理工具膛壹∥绕洌可以用它來配置系統(tǒng)践瓷、部署軟件和編排更高級的 IT 任務换衬,比如持續(xù)部署或零停機更新痰驱。
??Ansible 的主要目標是簡單和易用,并且它還高度關(guān)注安全性和可靠性瞳浦〉S常基于這樣的目標,Ansible 適用于開發(fā)人員叫潦、系統(tǒng)管理員蝇完、發(fā)布工程師、IT 經(jīng)理,以及介于兩者之間的所有人短蜕。Ansible 適合管理幾乎所有的環(huán)境氢架,從擁有少數(shù)實例的小型環(huán)境到有數(shù)千個實例的企業(yè)環(huán)境。
??使用 Ansible 無須在被管理的機器上安裝代理朋魔,所以不存在如何升級遠程守護進程的問題岖研,也不存在由于卸載了守護進程而無法管理系統(tǒng)的問題。
??Ansible 是新出現(xiàn)的自動化運維工具警检,基于Python開發(fā)缎玫,集合了眾多運維工具(puppet、cfengine解滓、chef赃磨、func、fabric)的優(yōu)點洼裤,實現(xiàn)了批量系統(tǒng)配置邻辉、批量程序部署、批量運行命令等功能腮鞍。
Ansible 的優(yōu)點:
??1. ansible融合了眾多老牌運維工具的優(yōu)點值骇,基本上pubbet和saltsatck能實現(xiàn)的功能,ansible都可以顯現(xiàn)移国。
??2. 輕量級吱瘩,無需在客戶端上安裝agent,更新時迹缀,只需要在操作機上進行一次更新即可使碾。
??3. ansible是一個輕量級的工具,ansible不需要啟動服務祝懂,僅僅只是一個工具票摇,可以輕松實現(xiàn)分布式擴展。
??4. 批量任務執(zhí)行可以寫成腳本砚蓬,而且不用分發(fā)的遠程就可以執(zhí)行矢门。
??5. ansible是一致性,高可靠性灰蛙,安全性設計的輕量級自動化工具祟剔。
??6. 使用python編寫,維護更加簡單摩梧。
Ansible 的基本架構(gòu)
??從上圖可以了解到其由以下部分組成:
??1. 核心:ansible
??2. 核心模塊(Core Modules):這些都是ansible自帶的模塊
??3. 擴展模塊(Custom Modules):如果核心模塊不足以完成某種功能物延,可以添加擴展模塊
??4. 插件(Plugins):完成模塊功能的補充
??5. 劇本(Playbooks):ansible的任務配置文件,將多個任務定義在劇本中障本,由ansible自動執(zhí)行
?? 6. 連接插件(Connectior Plugins):ansible基于連接插件連接到各個主機上教届,雖然ansible是使用ssh連接到各個主機的响鹃,但是它還支持其他的連接方法,所以需要有連接插件
??7. 主機群(Host Inventory):定義ansible管理的主機
Ansible 的工作原理
??1.管理端支持local 案训、ssh买置、zeromq 三種方式連接被管理端,默認使用基于ssh的連接- - -這部分對應基本架構(gòu)圖中的連接模塊强霎;
??2.可以按應用類型等方式進行Host Inventory(主機群)分類忿项,管理節(jié)點通過各類模塊實現(xiàn)相應的操作- - -單個模塊,單條命令的批量執(zhí)行城舞,我們可以稱之為ad-hoc轩触;
?? 3. 管理節(jié)點可以通過playbooks 實現(xiàn)多個task的集合實現(xiàn)一類功能,如web服務的安裝部署家夺、數(shù)據(jù)庫服務器的批量備份等脱柱。playbooks我們可以簡單的理解為,系統(tǒng)通過組合多條ad-hoc操作的配置文件 拉馋。