次のリソース定義があります
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 アーティファクトを目的の場所にコピーします。ここでの問題は、これらのパッケージの 1 つをインストールすることによって作成された場所を指すソース定義です。puppet を noop モードで実行すると、そのようなソースがないため、このリソース定義は失敗します。これは非常に論理的です。
この動作を変更する方法はありますか? すべての依存関係をスキップしたくありません。または、そうするために提案された方法は何ですか?jar をモジュール ファイルにコピーすることは避けたいと思います。
noop metaparameter, documentation hereを見つけましたが、それも役に立たないようです。したがって、リソース仕様は次のようになります。
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 のようなもの
ありがとう