Ubuntu 将Hiera与Puppet 3.7.3一起使用时的条件类排序

Ubuntu 将Hiera与Puppet 3.7.3一起使用时的条件类排序,ubuntu,puppet,Ubuntu,Puppet,我有两个Puppet模块,users和sourcerepo,用于匹配主机名表达式的节点 用户在我的组织中创建所需的所有用户,并为每个用户进行基本配置,例如在.ssh中放置一个~/.ssh/config和各种密钥,以根据私有Git repos进行身份验证 Sourcerepos使用一个创建的用户签出数百个Git存储库,并使用puppetlabs/vcsrepos模块将它们放在~/Git repos中 Sourcerepos模块显然依赖于users模块,但是在Sourcerepos中设置requir

我有两个Puppet模块,users和sourcerepo,用于匹配主机名表达式的节点

用户在我的组织中创建所需的所有用户,并为每个用户进行基本配置,例如在.ssh中放置一个~/.ssh/config和各种密钥,以根据私有Git repos进行身份验证

Sourcerepos使用一个创建的用户签出数百个Git存储库,并使用puppetlabs/vcsrepos模块将它们放在~/Git repos中

Sourcerepos模块显然依赖于users模块,但是在Sourcerepos中设置require users不会导致在尝试签出git存储库之前对整个类进行评估

由于存储库的数量和创建频率,向每个存储库添加before或subscribe选项是不可行的

在vcsrepo定义的类型上创建条件操作也是不可行的,因为它需要根据调用它的模块或类执行不同的操作


我想我理解木偶的排序关系,对我来说,这有点像我的一个或两个模块的设计中的缺陷。我想帮助您找出原因。

尝试在类中使用新的contain函数。这将确保在进入下一个类之前对完整的类进行评估。
本文档展示了如何使用类来放置依赖项。

您可以发布代码来显示您所尝试的内容吗?你的描述有点模糊。也许Class['Users']->Class['Sourcerepos']会起作用?我不太喜欢链式箭头,也许如果你提供一些示例代码,我们可以帮助你更好地解决问题。