一、puppet概述
puppet是開源的基於ruby的系統配置管理工具,基於c/s的部署架構。是乙個為實現資料中心自動化管理而設計的配置管理軟體,它使用跨平台語言規範,管理配置檔案、使用者、軟體包、系統服務等。客戶端預設每隔半小時會和伺服器通訊一次,確認是否有更新。當然也可以配置主動觸發來強制客戶端更新。這樣就把日常的系統管理任務**化了,**化的好處是可以分享,儲存,避免重複勞動,也可以快速恢復以及快速的大規模部署伺服器。
二、puppet構架
三、應用場景
統一安裝、配置管理軟體
統一配置系統優化引數
定期檢測服務是否執行
快速替換集群時裝置的角色
四、puppet工作原理
流程簡述如下:
1、客戶端puppetd向master發起認證請求。
2、puppet master告訴client是合法的。
3、客戶端puppetd開始呼叫facter,facter可以探測出主機的一些變數,例如主機名,記憶體大小,ip位址等。pupppetd 把這些資訊通過ssl連線傳送到伺服器端。
4、伺服器端的puppet master 檢測客戶端的主機名,然後找到manifest裡面對應的node配置, 並對該部分內容進行解析,解析分為幾個階段,語法檢查,如果語法錯誤就報錯。如果語法沒錯,就繼續解析,解析的結果會生成乙個中間的「偽**」(catalog),然後把偽**發給客戶端。
5、客戶端接收到「偽**」,並且執行。
6、客戶端在執行時判斷有沒有file檔案,如果有就向fileserver發起請求。
7、客戶端繼續判斷有沒有配置report。如果配置,就把執行結果傳送給伺服器。
8、伺服器端把客戶端的執行結果寫入日誌。並可以傳送給報告系統(dashboard)
五、puppet組織結構
puppet的目錄結構描述如下:
|-- puppet.conf # 主配置配置檔案
|-- fileserver.conf #檔案伺服器配置檔案
|-- auth.conf #認證配置檔案 (只允許域內認證)
|-- autosign.conf #自動驗證配置檔案
|-- tagmail.conf # 郵件配置檔案(將錯誤資訊傳送)
|-- manifests # 檔案儲存目錄(puppet會先讀取該目錄的.pp檔案)
|-- nodes
| | | puppetclient.pp #puppet解析主配置檔案所有的模組和節點都在此檔案裡include
| |-- site.pp # 定義puppet相關的變數和預設配置
| |-- modules.pp # 載入class類模組檔案(include nginx)
|-- modules # 定義模組
| --nginx # 以nginx為例
| |-- file
| |-- manifests
| | |-- init.pp #類的定義,類名必須與模組名相同
| |--- templates # 模組配置目錄,可以被模組的manifests引用
| | |-- nginx.erb #erb模板
六、puppet dashboard
puppet dashboard可以為puppet環境新增乙個圖形使用者介面(gui)。puppet dashboard可以顯示主機上puppet的執行結果,並且可以提供乙個節點分類工具來配置主機。
七、puppet loadblancer
當需要部署的伺服器越來越多(超過1000臺)時,puppet master解析工作將非常繁重,同時檔案分發也將成為瓶頸,再加上很多的client需要做ca認證,單台puppet將無法滿足需求,此時就需要對puppet做loadblancer,建議採用的方式是通過nginx做負載分配,典型的puppet集群架構如下:
構架說明:
Puppet概述 配置2
一 puppet概述 puppet是開源的基於ruby的系統配置管理工具,基於c s的部署架構。是乙個為實現資料中心自動化管理而設計的配置管理軟體,它使用跨平台語言規範,管理配置檔案 使用者 軟體包 系統服務等。客戶端預設每隔半小時會和伺服器通訊一次,確認是否有更新。當然也可以配置主動觸發來強制客戶...
puppet多環境配置(puppet自動化系列2)
我們為puppetmaster建立3個環境,它們分別是開發環境 jqdev 測試環境 jqtest 生產環境 jqprd 3.1 配置puppet.conf 在標籤 master 中新增environments環境,其次建立對應的環境標籤及配置建立目錄 root puppetmaster1 pupp...
puppet 配置 3 5 引數
介紹 puppet 中 facter 用法,介紹自引數定義,引數傳遞,引數使用的常見例子facter 是 puppet 的乙個依賴軟體,當安裝了 puppet 軟體,都可以通過 facter 命令查詢 puppet 內建變數直接呼叫命令 facter 查詢所有內建變數 通過命令 facter 需要查...