我有以下资源定义
file { '/usr/lib/oozie/libext/hadoop-lzo-0.5.0.jar':
ensure => present,
group => 'root',
owner => 'root',
source => '/usr/lib/hadoop/lib/hadoop-lzo-0.5.0.jar',
mode => 0755,
require => [Package['lzo'],Package['lzo-devel'],Package['hadoop-lzo'],Package['hadoop-lzo-native']],
}
这基本上将 jar 人工制品复制到所需的位置。这里的问题是源定义,它指向通过安装这些软件包之一创建的位置。在 noop 模式下运行 puppet 时,此资源定义会导致失败,因为没有这样的源 - 这是非常合乎逻辑的。
有没有办法改变这种行为?我不想跳过它的所有依赖项。或者建议的方法是什么?我想避免将 jar 复制到模块文件。
我在这里找到了 noop 元参数,文档,但似乎也无济于事。所以资源规范看起来像:
file { '/usr/lib/oozie/libext/hadoop-lzo-0.5.0.jar':
ensure => present,
group => 'root',
owner => 'root',
source => '/usr/lib/hadoop/lib/hadoop-lzo-0.5.0.jar',
mode => 0755,
noop => false,
require => [Package['lzo'],Package['lzo-devel'],Package['hadoop-lzo'],Package['hadoop-lzo-native']],
}
我需要打开一些东西吗?还是我误解了什么?如何检测该模块是否在 noop 模式下运行?如果我想进行一些讨厌的修复。类似 if noop 然后跳过
谢谢