下面是一個(gè)Puppet客戶端和Puppet服務(wù)器對(duì)話的一個(gè)示例場(chǎng)景:
1.Puppet客戶端決定是時(shí)候檢查Puppet服務(wù)器上的配置是否有更改。可以通過(guò)計(jì)時(shí)器或者在客戶端手動(dòng)操作。客戶端和服務(wù)器之間的對(duì)話通常是通過(guò)SSL加密的。
2.Puppet客戶端提供了它的憑證,這樣Puppet服務(wù)器可以知道哪個(gè)客戶端在請(qǐng)求。
管理客戶端憑證是一個(gè)單獨(dú)的問(wèn)題。
3.Puppet服務(wù)器通過(guò)編譯Puppet目錄發(fā)現(xiàn)客戶端需要的配置并將其發(fā)送給客戶端。
這涉及了一些機(jī)制,一個(gè)特定的設(shè)置并不需要利用所有的可能性。
對(duì)于Puppet客戶端來(lái)說(shuō),同時(shí)使用基于角色和具體配置的方式很常見(jiàn)。基于角色的配置可以被繼承。
4.Puppet服務(wù)器在客戶端運(yùn)行必要的代碼,這樣可以讓Puppet服務(wù)器決定哪些配置匹配這個(gè)客戶端。
從這點(diǎn)來(lái)看,Puppet配置是表意的。你聲明一個(gè)機(jī)器應(yīng)該有什么樣的配置,Puppet幫你將客戶端當(dāng)前狀態(tài)變?yōu)槠谕臓顟B(tài)。