#### Puppet基礎篇2-如何學習和使用Puppet
# 既來之,則安之。
對于Puppet的入門學習,其實并不難,很多人都會說Puppet是基于Ruby開發的,是不是必須要懂Ruby才能學好呢?其實并不是這樣,不懂Ruby照樣能學好Puppet。為什么這么說呢?
1、Puppet雖然是基于Ruby開發的,但是Puppet所有的資源基本上都是基于Puppet自身語言而寫的,而Puppet語言相對其他語言來說還是比較簡單的,大部分都是A=>B這種格式,稍微復雜點,就加點判斷語句,不過你會寫一兩個套用就可以了。
2、Puppet安裝也是比較簡單的,官方配備了詳細的yum源,依賴包也很全,可以訪問[http://yum.puppetlabs.com/](http://yum.puppetlabs.com/)下載系統對應的yum包puppetlabs-release-el,通過yum命令安裝即可獲得對應的repo。由于官方源默認安裝的是最新版本的puppet版本,而最新版本由于其不穩定性并不是我們想要的,那么如何指定版本進行安裝呢,請看這里[http://kisspuppet.com/2014/01/26/puppet_create_repo/](http://kisspuppet.com/2014/01/26/puppet_create_repo/),如果你比較懶,不想自己做yum源,那就去下載KissPuppet準備的yum源吧,更全,更強大[http://kisspuppet.com/2013/12/05/puppet_repo_pak/](http://http://kisspuppet.com/2013/12/05/puppet_repo_pak/)
**這里給點建議:**官方yum源已經做的很到位了,如果條件允許,盡量通過rpm包安裝而不是源碼安裝,至于原因自己想去。
3、通過puppet管理資源是需要寫模塊呢,有些人并不喜歡寫模塊,可以去[http://forge.puppetlabs.com/](http://forge.puppetlabs.com/)下載你需要的模塊,如何下載安裝呢,請點擊這里[http://kisspuppet.com/2014/01/14/puppet_forge_modules/](http://kisspuppet.com/2014/01/14/puppet_forge_modules/)
4、日常學習當中,如何去查找puppet相關資料或者詢問呢,這里教你9種方法去獲取[http://kisspuppet.com/2014/02/10/puppet_irc/](http://kisspuppet.com/2014/02/10/puppet_irc/)
5、學習當中可別忘了看書哦,以下書籍是值得學習的
- 《pro puppet》第一版和第二版,中文版叫《精通puppet配置管理工具》,不過只有第一版,第二版只有英文版,相信不久的將來第二版也會被翻譯成中文版,英語不錯的童鞋可直接看英文版。
- 《Puppet 2.7 Cookbook RAW》第一版和第二版,第一版已經被翻譯成中文,第二版基于3.x編寫的,聽說馬上翻譯完成了哦。
- 《puppet實戰》去年年底新書,剛發布,由中國人劉宇編寫,內容還是比較詳細的,可系統學習。
- 《Managing Infrastructure with Puppet》,沒怎么看過,呵呵!
**注:**以上書籍除了《puppet實戰》外,QQ群里都有共享的pdf,可去下載
6、除此之外,KissPuppet還收集了一些有關puppet技術的網址,可直接點擊查看,無需查找,節省時間,需要的點擊這里[http://kisspuppet.com/2013/11/09/puppet-resource/](http://kisspuppet.com/2013/11/09/puppet-resource/)
說了這么多,真的就不需要去學ruby了么?其實并不是這樣,誰都知道如果想要學到一款軟件的精髓,還是要看其源代碼的,至少有以下幾個地方可能需要你懂點ruby
1、puppet模塊中的erb模塊部分,需要了解一些簡單的ruby語句。
2、結合mcollecitve的plugins部分,如果需要修改或者添加新的plugin,需要懂一些ruby知識。
3、代碼調試需要懂ruby
4、新的資源開發需要懂ruby
...
接下來我會帶著大家一步一步搭建屬于自己的Puppet架構,特別適合零基礎學習的人。
- 序
- 第一章:Puppet基礎篇
- 編寫此系列文檔的目的
- 如何學習和使用Puppet
- 安裝Puppet前期的準備工作
- 安裝、配置并使用Puppet
- 如何建立master和agent之間的認證關系
- Puppet更新方式的選型
- 編寫第一個完整測試模塊puppet
- 編寫第二個完整測試模塊yum
- Puppetmaster多環境配置
- 自定義fact實現的四種方式介紹
- 第二章:Puppet擴展篇
- 自定義fact結合ENC(hirea)的應用實踐
- 如何使用虛擬資源解決puppet沖突問題
- 如何擴展master的SSL傳輸性能(apache)
- 如何擴展master的SSL傳輸性能(nginx)
- 通過多進程增強master的負載均衡能力(nginx+mongrel)
- 通過橫向擴展puppetmaster增加架構的靈活性
- puppet代碼與版本控制系統的結合
- Puppet dashboard的部署及測試
- 第三章:MCollective架構篇
- MCollecitve架構的引入
- MCollective+MQ架構的部署
- Puppet插件的部署及測試
- MCollective各種插件的部署及測試
- MCollective安全性設計
- MQ的安全性設計
- 多MQ下MCollective高可用部署
- 第四章:Foreman架構的引入
- Foreman作為自動化運維工具為什么會如此強大
- 安裝前環境準備
- 安裝Foreman1.5架構(all-in-one)
- 安裝Foreman1.6架構(foreman與puppetmaster分離)
- 安裝Foreman1.7架構(源碼,僅測試使用)
- 整合puppetmaster
- Foreman結合mcollective完成push動作
- Foreman結合puppetssh完成push動作
- Foreman的ENC環境與fact環境的對比
- hostgroup如何轉換為本地的fact
- 智能變量與puppet模塊參數化類的結合
- Foreman報告系統的使用
- Foreman-proxy如何做負載均衡
- Foreman上如何展現代碼及文件內容
- Foreman如何和虛擬化管理軟件結合
- 如何借助Foreman完成自動化部署操作系統(一)
- 如何借助Foreman完成自動化部署操作系統(二)
- Foreman CLI(Hammer)工具的使用
- Foreman目前的不足之處