工做原理node
Puppet的目的是讓管理員只集中於要管理的目標,而忽略實現的細節。Puppet既能夠在單機上使用,也能夠c/s使用,在大規模使用puppet的狀況下,一般使用c/s結構,在這種結構中puppet客戶端只運行puppetclient,puppet服務器只運行puppetmaster。安全
工做流程服務器
1)客戶端puppet調用facter(facter是經過ssl加密收集及檢測分析客戶端配置信息的一個工具),facter探測出主機的一些變量,如主機名,內存大小,ip地址等。Puppet把這些信息經過ssl鏈接發送到服務器器端ssh
2)服務器端的puppetmaster經過facter工具分析檢測客戶端的主機名,而後找到項目主配置文件mainfest裏面對應的node配置,並對該部份內容進行解析。Facter發送過來的信息能夠做爲變量處理,node牽扯到的代碼才解析,其餘沒牽涉的代碼不解析,解析分爲幾個階段,首先進行語法檢查,若是語法沒錯,就繼續解析,解析的結果生成一箇中間的「僞代碼」,而後把僞代碼發送給客戶端。工具
3)客戶端接收到僞代碼,並執行,客戶端把執行的結果發送給服務器。加密
4)服務器把客戶端的執行結果寫入日誌。日誌
Puppet工做過程有如下兩點值得注意:
1)爲了保證安全,client和master之間是基於ssl和證書的,只有經master證書認證的client能夠與master通訊。
2)Puppet會讓系統保持在人們所指望的某種狀態並一直維持下去,例如:檢測某個文件並保證其一直存在,保證ssh服務始終開啓,若是文件被刪除了或者ssh服務被關閉了,puppet下次執行時(默認30分鐘),會從新建立該文件或者啓動ssh服務。blog