2016-04-28 93 views
3

有需要一個傀儡代理人聯繫人部分不同傀儡大師。如何從一個木偶代理使用多個不同的木偶大師?

原因:有不同的組創建不同的獨立清單組。

可能的團體和他們的任務

  • 應用程序供應商:應用程序的配置
  • 安全性:硬化
  • 操作:路由表,監控工具

每個組要運行它的自己的木偶大師 - 數據(清單和適當的數據)應該嚴格分開。如果可能的話,一個團隊甚至不應該看到/訪問其他人的清單(我們在puppet agent操作系統上使用MAC)。

的思考和想法,都失敗了:

  • 使用需要(只)希拉不靈活 - 有需要有不同的體現。
  • r10k:支持多個環境,但在每個環境中只能訪問一組清單。
  • 多個但相同的puppet服務器使用例如DNS循環:這是相反的方式。我們需要不同的木偶大師。

,可能是可能的,但有些方面......

  • 運行傀儡代理的多個實例。這'感覺'很奇怪。優點:訪問權限可以根據需要進行限制(例如應用程序puppet代理可以在應用程序用戶下運行)。
  • 修補傀儡,它可以處理多個木偶大師。缺點:可能是一些工作。
  • 使用其他機制來分擔責任。例如:使用不同的git-repository。創建一個木偶大師。木偶大師拉出所有不同的存儲庫併爲清單提供服務。

我的問題:

  1. 是否有實現與木偶這一要求直接的方式?
  2. 如果沒有,是否有一些最佳實踐如何做到這一點?

回答

2

雖然我認爲你在這裏試圖做的更好的解決辦法是將所有的模塊和數據合併到一個主設備上,並且利用環境將有效地完全相同(不同的主設備將提供不同的這可以通過實現標準的多主基礎架構(一個用於證書籤名的CA主站,由具有相同CA主站簽名的證書的多個編譯主站,配置爲在其他地方轉發證書流量)來實現,並將每個主站配置爲有你需要的任何東西。然後,您最終必須指定每次運行(cronjob或其他方法)時要檢入哪個主數據庫,並且有可能通過一個簽入更改由另一個設置的設置(有些情況下會消除強化/安全性概念)。 我會敦促你更深入地思考如何協作你的各個方面(每個部門的hiera數據和具有訪問控制的模塊的git回購),以便中央主數據庫可以滿足你的需求(並且訪問該主數據庫將是唯一的方法從任何地方獲取數據/模塊)。 這種安裝方式實施起來會很複雜,但最終結果會更可靠和可維護。木偶公司甚至可以進行諮詢,以幫助您做到正確。

也可能有其他方法,只是fyi。

+3

可替代地,合併來自不同源的模塊的所有成在單個(邏輯)掌握*相同*環境不僅會更簡單設置,但也將提供免費和自動檢測一組與另一組的規格之間的衝突。將不同團體的規格分解到不同的環境中將會失去許多(但不是全部)將所有東西放在同一個主體上的優點。 –

+0

感謝您的回答。我目前正試圖使用​​一個puppet master和多個git服務器來實現這個版本。給我一些時間來評估這一點。 –

0

我經常發現,爲了開發目的,多家的木偶代理人很方便,因爲使用本地puppet服務器,您可以即時測試清單更改 - 沒有要求提交,推送和r10k deploy environment只是使用目錄環境和一個(遠程)puppet服務器。

我發現最好的辦法就是改變路徑配置(否則你會遇到問題,例如CA證書無法與其他服務器進行驗證) - 「你的一種形式」運行多個實例傀儡代理人「的建議。 (我仍然運行所有這些特權,所以他們都可以使用apt package {}等)

對於木偶3,我想通過改變與--libdir的LIBDIR(因爲ssldir是LIBDIR下)做到這一點,但現在(木偶4+)看起來更明智,可以改變--confdir。因此,例如:

$ sudo puppet agent -t     # Runs against main puppet server 
$ sudo puppet agent -t \ 
    --server=puppet.dev.example.com \ 
    --confdir=/etc/puppetlabs/puppet-dev # Runs against dev puppet server