初識:
Puppet工作方式:
puppet既可以在單機上使用,也可以以C/S結構使用.
在大規模使用puppet的情況下,通常使用C/S結構;在這種結構中puppet用戶端是隻運作puppet的伺服器,puppet伺服器端是隻運作puppetmaster的伺服器.
Puppet工作流程:
<a href="http://blog.51cto.com/attachment/201305/111516902.png" target="_blank"></a>
Puppet的具體工作流程如下:
用戶端puppetd調用facter,facter會探測出這台主機的一些變量如主機名、記憶體大小、IP位址等。然後puppetd把這些資訊發送到伺服器端。
伺服器端的puppetmaster檢測到用戶端的主機名,然後會找到manifest裡面對應的node配置,然後對這段内容進行解析;facter送過來的資訊可以作為變量進行處理,node牽涉到的代碼才解析,其它的代碼不解析;解析分幾個過程:文法檢查、然後會生成一個中間的僞代碼,然後再把僞代碼發給客戶機。
用戶端接收到僞代碼之後就會執行,用戶端再把執行結果發送給伺服器。
伺服器再把用戶端的執行結果寫入日志。
說明:Puppet背景運作的時間預設是半小時執行一次,不是很友善。可以考慮不讓它在背景跑而是使用crontab來調用。這樣可以精确控制每台用戶端的執行時間,分散執行時間也可以減輕伺服器負載。
Puppet架構:
<a href="http://blog.51cto.com/attachment/201305/112300484.png" target="_blank"></a>
暫時還不太了解,有待後期研究。
進階學習資料:
《learningpuppet》
《Pro.Puppet》
需達到的學習目标:
學習《Pro.Puppet》,掌握更細節内容,策劃一個Puppet實踐場景并實作;
針對Puppet的學習進度,發表學習筆記,每周至少一篇。
本文轉自 xxrenzhe11 51CTO部落格,原文連結:http://blog.51cto.com/xxrenzhe/1195402,如需轉載請自行聯系原作者