当 noop runs-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,
      require => [Package['lzo'],Package['lzo-devel'],Package['hadoop-lzo'],Package['hadoop-lzo-native']],
    }

实质上是将jar工件复制到所需的位置。这里的问题是source定义,它指向通过安装这些包之一创建的位置。当在noop模式下运行puppet时,这个资源定义会导致失败,因为没有这样的源——这是非常合乎逻辑的。

有办法改变这种行为吗?我不想跳过它的所有依赖项。或者建议的方法是什么?我想避免复制jar到modules文件。

我在这里找到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 then skip

谢谢

当客户端以noop模式运行时,$clientnoop事实为真,否则为假。

我不确定这是否是最好的解决方案,但是当$clientnoop为真时,您可以包含不同的资源。您的"noop资源"可以是具有相同参数的文件资源,除了源。这样,依赖于该文件的其他资源仍然可以被应用。

相关内容

  • 没有找到相关文章

最新更新