目錄
1. foreman簡介
2. puppet run 執(zhí)行流程
3. remote execution插件執(zhí)行流程
4. 復(fù)雜網(wǎng)絡(luò)環(huán)境下多smart-proxy
1. foreman簡介
從官方流程圖說起,foreman為我們提供了統(tǒng)一的管理界面判耕,管理puppet, salt等透绩。foreman 的流程圖中,關(guān)鍵的一個部分就是smart proxy, 提供了foreman 與 puppet等相互通信的中間件。
2. puppet run 執(zhí)行流程
網(wǎng)頁上點(diǎn)擊puppet run后帚豪,foreman 通過API調(diào)用smart proxy, 然后通過smart proxy 提供的smart proxy ssh插件去執(zhí)行puppet modules碳竟,最后通過puppet server 將agent機(jī)器的facts上傳到foreman,并保存在foreman的數(shù)據(jù)庫中狸臣。
smart proxy ssh插件本質(zhì)上是執(zhí)行了puppet agent --onetime --no-usecacheonfailure命令莹桅,可參考smart proxy關(guān)于ssh部分的配置。執(zhí)行該命令后烛亦,如果puppet server 中配置了ENC诈泼,然后puppet server就可以將該命令執(zhí)行過程產(chǎn)生的report發(fā)送給foreman。
下圖為執(zhí)行puppet run所涉及到的部分?jǐn)?shù)據(jù)庫表:
3. remote execution插件執(zhí)行流程
Remote Execution執(zhí)行過程如下圖此洲,其中dynflow確保了命令的異步執(zhí)行厂汗。
下圖是Remote execution執(zhí)行涉及的部分?jǐn)?shù)據(jù)庫表:
4. 復(fù)雜網(wǎng)絡(luò)環(huán)境下多smart-proxy
所謂的復(fù)雜網(wǎng)絡(luò),只是模擬了foreman 與 puppet agent 網(wǎng)絡(luò)上不聯(lián)通的情況呜师,在這種網(wǎng)絡(luò)環(huán)境下娶桦,需要存在堡壘機(jī)確保能夠同時連接foreman和agent機(jī)器。當(dāng)存在大量幾千甚至上萬臺堡壘機(jī)需要管理幾萬個agent設(shè)備的情況下汁汗,可生成如下網(wǎng)絡(luò)結(jié)構(gòu)圖: