自動化運維工具Puppet在實際工作中的注意事項
Puppet在不同平臺上的安裝方法不一樣,個人不是特別推薦用源碼的方式,推薦使用yum和apt-get,因為既然用到了puppet環(huán)境,說明應用場景的機器數(shù)量還是很多的,yum和apt-get更為方便。很多朋友比較關心puppet master和puppet agent端的版本不一致的問題,其實就一個規(guī)則就行:puppet master的版本號是必須高于puppet agent的,二者的版本不要相差太遠,差太遠了就容易連接不上。
Puppet對時間要求是非常嚴格的,這是因為證書申請是通過SSL連接,而SSL連接依賴主機上的正確時間,如果時間不正確,得到的錯誤信息而導致證書申請失敗,所以我們在puppet client連接puppet
master時都應該通過ntpdate命令來自動對時,如果Xen虛擬機要加入puppet環(huán)境,建議也要修改sysctrl內(nèi)核,然后再通過ntpdate命令來自動對時,詳見:
http://andrewyu.blog.51cto.com/1604432/1301516。
定義(define)在puppet的官方文檔里是沒有這一說法的,我們可以理解為資源的組合容器,很多資料和文檔將其翻譯成函數(shù),這里是錯誤的;puppet的函數(shù)是puppet master上運行的,并且也只能在puppet master上面運行,比如包含類和模塊的include指令,我們將其稱之為puppet的函數(shù),函數(shù)和定義還是有區(qū)別的。
在模塊中定義的類要跟模塊同名的,比如nginx模塊中定義的類起名也要為nginx,不然puppet客戶端連接puppet服務器時會報報不到class的錯誤,模塊可以由多個類來組成,我們可以使用::命名空間語法作為在模塊中創(chuàng)建結構和組織的一種方法,比如nginx::install,nginx::config。
自動化運維工具puppet的工作流程、基礎概念及入門學習資料見附件。