【发布时间】:2018-08-29 05:30:11
【问题描述】:
假设我有一个安装包的类 (profile::base::tools) 和另一个定义这些包所需的 yumrepos(profile::base::yum) 的类。
工具.pp:
class profile::base::tools {
$packages = [
'package1',
'package2'
]
package { $packages:
ensure => present,
}
}
目前运行方式是通过base.pp:
base.pp:
include profile::base::yum
include profile::base::tools
Class['profile::base::yum'] -> [
Class['profile::base::tools']]
所以当我运行base.pp 时,它首先创建 yum 存储库,然后安装软件包。目前tools.pp需要先定义yumrepos的依赖只在base.pp中提到。
我的问题是,如果我单独运行tools.pp(出于测试目的),它不会知道依赖关系,因此会失败。我可以在tools.pp 类中添加include profile::base::yum,但想知道它是否是每个类了解依赖关系的标准,即使它已经在其他地方定义(如base.pp)
【问题讨论】:
-
你应该在
tools类中使用require yum而不是Class['profile::base::yum'] -> Class['profile::base::tools']:puppet.com/docs/puppet/5.5/…。 -
见cmets到下面的答案
标签: dependencies puppet standards