2016-03-03 60 views
0

我誤解了有關傀儡的事情,但是我很難制定出足夠好的成功來尋找它。木偶依賴關係

我有一些運行軌道的主機。所以我有一個建立這樣的主機的puppet模塊。

class rails_server { 
    ... 
} 

我有一些主機知道如何部署到軌服務器,做測試在軌道上服務等

class rails_deployment { 
    ... 
} 

二者均依賴於具有安裝了某些寶石,一定紅寶石版本等。

class rails_dependencies { 
    class { '::rvm': } 
    rvm_system_ruby { ... } 
    rvm_gem { ... } 
} 

但這似乎有點雜牌的,因爲在我的site.pp,我要明確指出,我想rails_dependencies安裝。但是如果我有rails_serverrails_deployment都包含rails_dependencies,然後嘗試啓動可運行服務器並測試並部署到自身的測試主機,則會出現重複聲明錯誤。

回答

2

如果沒有更多示例代碼,很難回答這個問題。使用include將防止同一類的重複聲明,所以它可能是其他地方?

粘貼錯誤和它所指的代碼行將有幫助

+0

啊哈,就是這樣。如果我將'rails_dependency'設置爲一個合適的模塊,那麼include確實可以避免兩次拉動它。如果我將該依賴項的_contents_包含在我實際需要的兩個不同模塊中,則會在'class {':: rvm':}'上出現重複聲明錯誤。 – jma