函数contain()与Puppet中的锚定模式
这篇文章是指 是否可以用函数contain替换锚定模式,该函数包含维护执行顺序和阻止声明的浮动类。这两个清单如下所示:函数contain()与Puppet中的锚定模式,puppet,Puppet,这篇文章是指 是否可以用函数contain替换锚定模式,该函数包含维护执行顺序和阻止声明的浮动类。这两个清单如下所示: class profile::maven inherits profile::base { # Hiera $version = hiera('profile::maven::version', '3.2.1') $settings = hiera_hash('profile::maven::settings', undef) $environments = h
class profile::maven inherits profile::base {
# Hiera
$version = hiera('profile::maven::version', '3.2.1')
$settings = hiera_hash('profile::maven::settings', undef)
$environments = hiera_hash('profile::maven::environments', undef)
include 'profile::java'
anchor { 'profile::maven::begin': }
class { '::maven::maven': version => $version, }
anchor { 'profile::maven::end': }
if ($settings) {
create_resources('::maven::settings', $settings)
}
if ($environments) {
create_resources('::maven::environment', $environments)
}
Anchor['profile::maven::begin'] -> Class['profile::java'] -> Class['::maven::maven'] -> Anchor['profile::maven::end']
}
及
由于Puppet 3.6.x中的当前问题,必须重命名概要文件类,否则我们会得到错误:nil:NilClass的未定义方法“ref”。应用更改将导致:
class profile::mavenp inherits profile::base {
# Hiera
$version = hiera('profile::maven::version', '3.2.1')
$settings = hiera_hash('profile::maven::settings', undef)
$environments = hiera_hash('profile::maven::environments', undef)
include 'profile::javap'
class { '::maven::maven': version => $version, }
contain 'maven::maven'
if ($settings) {
create_resources('::maven::settings', $settings)
}
if ($environments) {
create_resources('::maven::environment', $environments)
}
Class['profile::javap'] -> Class['::maven::maven']
}
及
这些变化相等吗
如果有人对如何使用profile/role方法处理Puppet中的技术依赖性有更好的了解,请毫不犹豫地分享您的想法。后一对类与前一对类并不完全等效。最大的问题是profile::javap。请注意,其模拟概要文件::java将此作为其依赖链的一部分:
Class['::java'] -> File['profile-script:java.sh']
javap没有类似的功能
我不能100%确定class profile::mavenp是否等同于class profile::maven,尽管我认为是这样。如果把前者包括在内,你的意图会更清楚,我的不确定性也会得到解决
contain 'profile::javap'
代替或补充
include 'profile::javap'
contain 'profile::javap'
include 'profile::javap'