下面是一個Puppet客戶端和Puppet服務器對話的一個示例場景:
1.Puppet客戶端決定是時候檢查Puppet服務器上的配置是否有更改。可以通過計時器或者在客戶端手動操作。客戶端和服務器之間的對話通常是通過SSL加密的。
2.Puppet客戶端提供了它的憑證,這樣Puppet服務器可以知道哪個客戶端在請求。
管理客戶端憑證是一個單獨的問題。
3.Puppet服務器通過編譯Puppet目錄發現客戶端需要的配置并將其發送給客戶端。
這涉及了一些機制,一個特定的設置并不需要利用所有的可能性。
對于Puppet客戶端來說,同時使用基于角色和具體配置的方式很常見。基于角色的配置可以被繼承。
4.Puppet服務器在客戶端運行必要的代碼,這樣可以讓Puppet服務器決定哪些配置匹配這個客戶端。
從這點來看,Puppet配置是表意的。你聲明一個機器應該有什么樣的配置,Puppet幫你將客戶端當前狀態變為期望的狀態。