Ruby Puppet类命令使用defines中断
我对所应用模块的顺序有一定程度的依赖性:Ruby Puppet类命令使用defines中断,ruby,puppet,puppet-enterprise,Ruby,Puppet,Puppet Enterprise,我对所应用模块的顺序有一定程度的依赖性: class build() { # define order Class['base'] -> Class['config'] -> Class['app'] -> Class['sso'] class { 'base' : ... } class { 'config' : ... } # etc } class base::init.pp () { class { 'base::pr
class build() {
# define order
Class['base'] -> Class['config'] -> Class['app'] -> Class['sso']
class { 'base' : ... }
class { 'config' : ... }
# etc
}
class base::init.pp () {
class { 'base::prereqs' : ... }
class { 'base::worker' :
require => Class['base::prereqs']
...
}
}
# etc etc
当base::prereqs
具有以下内容时,会发生错误:
define base::prereqs::file () { ... }
class base::prereqs () {
$files = [ 'file_name', ... ]
base::prereqs::file { $files : }
}
所需顺序为base::init-->base::prereqs-->base::worker-->config::init-->config::preprepreeqs-->config::worker-->app::init…
然而,使用define的实际订单变成了
base::init-->base::prereqs(定义中创建的资源除外)-->config::init-->config::prereqs-->……-->base:preprepreq(由define创建的资源)-->base::worker
base
中的排序是一致的,但是order
中的级别似乎不知道资源已添加到prereqs
中,并且认为base
已完成
有什么帮助吗
Puppet v3.6.2(Puppet Enterprise 3.3.2)使用
include
或class{'title':}
排序关系不超越公共类声明
在您的场景中实现这一点的最简单方法是创建类
新手问题,变量仍然可以通过
contain
传递吗?是的,可以<代码>类ntp{{#…类{'ntp::service':enable=>true,}包含“ntp::service”#…}@rjinski yes,但无论如何,最好还是依赖Hiera和自动参数查找。
class base {
contain base::prereqs
contain base::worker
Class['base::prereqs'] -> Class['base::worker']
}