木偶依赖

Puppet dependency

我对 puppet 有一些误解,但我无法很好地表达它以成功搜索它。

我有一些主机 运行 rails。所以我有一个 puppet 模块来设置这样的主机。

class rails_server {
  ...
}

我有一些主机知道如何部署到 rails 服务器,对 rails 服务进行测试等

class rails_deployment {
  ...
}

它们都依赖于安装了特定的 gem,特定的 ruby 版本,等等

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

但这似乎有点乱七八糟,因为在我的 site.pp 中,我必须明确声明我要安装 rails_dependencies。但是,如果我有 rails_serverrails_deployment 都包含 rails_dependencies,然后尝试启动一个可以 运行 服务器并测试和部署到自身的测试主机,我出现重复声明错误。

没有更多示例代码很难回答这个问题。使用 include 将防止相同 class 的重复声明,所以它可能在其他地方?

粘贴错误及其引用的代码行会有所帮助