透過Ansible,使用者可以批次地更新應用程式伺服器。(圖片來源/Ansible)

 Ansible 

● 開發公司:Ansible

● 網址:www.ansible.com

● 作業系統:Linux、Mac OS X及Windows

● 問市時間:2012年2月

● 採用公司:NASA、Twitter及Evernote

 

Ansible是以Python程式語言開發的自動化組態管理工具,目標是實現基礎建設即程式碼(Infrastructure as Code)的目標,協助開發者部署出一致的運作環境。此外,Ansible可以用於部署應用程式以及幫助開發者導入持續整合的作業流程。

Ansible的部署模式不需要依賴代理程式(agent),與Puppet及Chef的拉取(Pull-based)屬性為特色的工具相比,Ansible的屬性則為推播式(Push-based)。

故不如Puppet跟Chef進行部署時,需要透過架設額外的Puppet主機或是Chef伺服器,Ansible只需透過SSH協定,對遠端伺服器進行控制或部署,而這樣的設計方便使用者不必對所有管理節點預先安裝代理程式,減少部署的前置作業。

Ansible透過劇本(Playbook)以及模組(Module)對節點進行管理。Ansible比喻:「如果模組是工作室內的工具,那麼劇本就是你的設計規畫。」

劇本是Ansible的配置、部署及編排使用的語言,用於描述某個透過遠端主機執行命令的方案,或者一組程序運作的命令集合。此外,劇本被設計為人類可讀,使用YAML格式撰寫。而劇本為了專注於成為組態的模型,在設計時就盡量減少了類似程式語言或者腳本的語法。

在基礎層面的應用上,Ansible的劇本可以被用於管理部署到遠端伺服器的組態管理文件。而在更高層面上,劇本可以依序對多層式架構的伺服器執行滾動更新(Rolling Updage),或是將任務指派給其他主機,例如監控伺服器或平衡負載設備。

而在每個劇本中被Ansible實際執行的任務則稱為模組,通常也可被稱為任務套件(Task Plugin)或函式庫套件(Library Plugins)。使用者可以撰寫自己專用的模組,用於控制系統的資源或執行系統命令。

此外,模組也分類為核心模組以及額外模組。核心模組為系統預設的模組,由Ansible團隊所共同開發及維護,而額外模組則由Ansible社群開發。此外,受歡迎程度高的額外模組,未來也有機會被併入核心模組。Ansilbe也提供另外3種付費版本:Basic Tower、Enterprise Tower及Premium Tower。

相關報導請見「【IT基礎架構邁向程式化的第一步】專家嚴選DevOps自動化工具」


Advertisement

更多 iThome相關內容