天天看點

puppet初識與原理簡介

初識:

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,如需轉載請自行聯系原作者

繼續閱讀