2016-03-03 107 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