Puppet採用主從式架構,客戶端定期與Puppet主機連線,取得最新的組態設定。(資料來源/Puppet,製圖:iThome)

 Puppet  

● 開發公司:Puppet Labs

● 網址:www.puppetlabs.com

● 作業系統:Linux、類Unix及Windows

● 問市時間:2005年

● 採用公司:美國銀行、紐約證券交易所、GitHub

 

Puppet由Puppet Labs在2005年所開發,是一款由Ruby所撰寫的開源組態管理軟體,使用Puppet自有的宣告式語言或是Ruby特定領域語言(Domain-Specific Language,DSL)進行開發,亦可在Linux、Unix及Windows等作業系統運作。

Puppet產品管理負責人Susannah Axelrod表示,Puppet是一種簡單的塑模語言(Modeling Language)。而使用者透過使用Puppet編寫的程式,可以實現IT基礎架構的管理自動化。

她表示,當使用者在使用Puppet時,即在將IT架構轉為基礎架構即程式碼(Infrastructure as Code),開發者可以透過程式碼管理基礎架構。另外,不如其他的程序式腳本(Procedural script),Puppet的塑模語言可以跨平臺運作。

Puppet的運作方式與程序式腳本有非常大的差異。如果開發者使用程序式腳本部署伺服器,必須清楚了解部署流程中各步驟的細節,才能正確編寫腳本,使伺服器部署成為開發者所需求的狀態。而使用Puppet,開發者只要得知伺服器最終的狀態為何,不需要清楚了解其中的過程,只需將實作的細節,如指令名稱、系統參數以及檔案格式交給Puppet。使用者也不必擔心腳本的撰寫錯步驟,而導致部署錯誤等問題。另外,使用者若執行一般的腳本文件,就必須對系統進行變更。

但是Puppet可以一直不斷的重複被執行。若伺服器已經處於理想的狀態,Puppet也會確保它一直維持如此狀態不變動。

Puppet採用主從式架構,由Puppet客戶端及一個或多個Puppet主機所組成,而客戶端定期與Puppet主機連線,取得最新的組態設定。而使用者得以Ruby特定領域語言來撰寫組態樣板,稱之為宣告檔,而Puppet主機再依據宣告檔的內容,自動在客戶端部署一臺伺服器所需的軟體。

而每臺透過Puppet部署的伺服器上都會安裝一個Puppet agent程式定期檢查,確保客戶端的組態符合宣告檔的設定。而當客戶端配置完成以後,也會自動發送訊息,通知Puppet主機有關客戶端部署的資訊。

Puppet模組的優點在於可重複性,使用者可以重複使用他人撰寫的宣告檔,不須自己重新撰寫。

除了Puppet Labs釋出的模組,也可以在Puppet Forge網站上搜尋Puppet社群所撰寫超過3千個模組。此外,Puppet Labs也有提供付費版本的Puppet Enterprise。

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

熱門新聞

Advertisement