本節書摘來自華章出版社《ansible權威指南 》一書中的第1章,第1.1節,李松濤 魏 巍 甘 捷 著更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
ansible底層基于python,以簡單著稱,配置檔案格式也以ini和yaml為主,與其他管理工具相比,學習成本較低,學習曲線也很平滑,無論是基礎運維人員還是資深運維工程師都可以較快上手,稍加練習便可以熟練掌握。如果具備dev基礎,熟悉python、php等主流語言,基于ansible開放api接口做二次開發,可以靈活有效地發揮其價值。ansible自身也包括非常豐富的内置子產品,從windows系統到開源linux系統,從檔案同步到指令執行,從軟體的安全更新到配置的維護變更,從商業硬體a10、f5到公(私)有雲aws、digital、vmware、docker等,幾乎囊括了運維日常所有的技術應用。系統下所有的操作可從運維操作角度劃分為兩類。
檔案傳輸:檔案的本地傳輸和異地傳輸,所有檔案的空間形态、時間形态變化均構成檔案傳輸類操作。
指令執行:終端所有操作對系統來講都是指令的組成,最終轉換為基礎硬體可接受的電信号完成任務集。對運維操作的使用者行為來講,除檔案傳輸以外的其他操作均可稱為指令執行。
從自動化工作類型角度歸類如下。
(1)應用部署
現今的應用功能越來越強大,同步應用部署過程的依賴和規則也日趨複雜,但對應用運維的要求沒有随之降低,有效快速正确平滑的應用部署需求日趨強烈。ansible内置網絡、應用、系統、第三方雲平台擴充等完善的功能子產品,協助運維快速完成應用的安裝、解除安裝、更新、啟停、配置等部署類工作,即使對跨平台或知名的商業硬體也同樣支援。
(2)配置管理
配置管理(conf?iguration management,cm)是通過技術或行政手段對軟體産品及其開發過程和生命周期進行控制、規範的一系列措施。配置管理的目标是記錄軟體産品的演化過程,確定軟體開發者在軟體生命周期中各個階段都能得到精确的産品配置。在日益複雜的it環境和使用者需求下,ansible内置file、template,結合jinja、lineinf?ile等内置子產品,同時無縫結合github、gitlab、git、svn、jenkins等主流版本控制和ci持續內建工具,助力配置管理自動化。
(3)任務流編排
有效保證tasks任務流按既定規則和順序完成事先制訂的目标和計劃,同時roles編排方式又能在一定程度上從書寫習慣和代碼層編排上保證整體項目的可架構性和規範性,協助控制項目維護成本不緻過高。
如上場景适用于網絡管理者、系統運維、應用運維、桌面運維、devops、基礎架構運維等多領域運維行業,以及無運維崗但服務規模又需有一定精力投入維護的小型公司,開發人員經過簡單的了解即可初步上手。同樣也适用于中大型公司,可以投入人力、精力、财力對ansible進行二次開發,使其更加适用。