使用Hiera和Puppet 3.7.3时的条件类排序

时间:2015-01-02 01:46:32

标签: ubuntu puppet

我有两个Puppet模块,“users”和“sourcerepos”调用匹配主机名表达式的节点。

“用户”创建组织内所需的所有用户,并为每个用户进行基本配置,例如在.ssh中放置〜/ .ssh / config和各种密钥,以便对私有Git存储库进行身份验证。

“Sourcerepos”使用其中一个创建的用户签出数百个Git存储库,并使用puppetlabs / vcsrepos模块将它们放在〜/ git-repos中。

“Sourcerepos”模块显然依赖于“users”模块,但在“Sourcerepos”中设置“require users”并不会导致在尝试检出git存储库之前评估整个类。

由于存储库的数量庞大以及创建它们的频率,向每个存储库添加“before”或“subscribe”选项是不可行的。

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

认为我理解Puppet订购关系,而对我而言,这是我的模块中一个(或两个)设计的缺陷。我想帮助弄清楚如何/为什么。

1 个答案:

答案 0 :(得分:0)

尝试在类上使用新的contains()函数。这将确保在进入下一个课程之前正在评估完整的课程。 本文档https://www.devco.net/archives/2012/12/13/simple-puppet-module-structure-redux.php显示了如何使用类来放置依赖项。