回答:
Puppet 2.6.6以降を使用している場合、execなしでこれを行う「ネイティブ」な方法:
file { '/path/to/myfile':
ensure => 'present',
audit => 'all',
}
(この機能はPuppet 2.6.0以降に存在しますが、監査にはいくつかの問題があり、2.6.6リリースでのみうまく機能しなくなりました。)
古いバージョンを使用している場合は、リソースをnoop
モードで実行するように指示することもできます。これにより、Puppetが実行され、ファイルが存在しない場合にメッセージが表示されます。
file { '/path/to/myfile':
ensure => 'present',
noop => 'true',
}
独自の関数を作成するか、execをonlyifコマンドで使用する必要があります。何かのようなもの :
exec { "mycommand":
path => "/usr/bin:/usr/sbin:/bin",
onlyif => "test -f /etc/blalba" //yours command
}
creates => '/etc/blabla'
」は「」よりも優れていませんonlyif
か?
creates
は、同じ結果が得られ、はるかに単純になります(そして少し高速になります)。はい、一般的にonlyif
はより多くの柔軟性を提供します。