2016-04-18 47 views
0

我正在爲我們的基礎設施編寫一本完美的劇本。我有以下經常需要,我還沒有找到推薦的模式:最佳做法是從多個角色使用銀河的角色嗎?

我有一個需要運行多個虛擬主機(/數據庫/ RENV環境/等)的服務器。我可以安裝nginx(postgres/rbenv/etc),並依賴於來自galaxy,i的角色。即

dependencies: 
- role: "geerlingguy.nginx" 
    nginx_ppa_use: true 
    nginx_ppa_version: development 
    .. 

現在我可以添加一個虛擬主機配置數組到這個依賴。但是,我想將這些定義不是通過技術(nginx/rbenv ...)綁定,而是通過項目綁定。

到目前爲止我發現的最佳路徑是在每個項目角色中重複nginx依賴項。但是,這會導致所有全局nginx選項的重複以及在配置新服務器時重複執行nginx安裝。

回答

2

對我來說這似乎很好。

到目前爲止我發現的最佳路徑是在每個項目角色中重複nginx依賴項。但是,這會導致所有全局nginx選項的重複以及在配置新服務器時重複執行nginx安裝。

它不應該,因爲Ansible是建立在只能做的事情,如果系統狀態不處於理想狀態(即只安裝如果尚未安裝的nginx nginx的)。但是,如果重複檢查花費的時間比您想要的要長,您可以將角色分成兩部分:一部分執行基本常用設置,另一部分重複執行每個虛擬主機。

相關問題