Réponses:
La façon "native" de le faire sans exec si vous êtes sur Puppet 2.6.6+:
file { '/path/to/myfile':
ensure => 'present',
audit => 'all',
}
(Cette fonctionnalité existe depuis Puppet 2.6.0, mais il y avait un certain nombre de problèmes avec l'audit qui n'ont vraiment été résolus qu'avec la version 2.6.6.)
Si vous utilisez une version antérieure, vous pouvez également indiquer à la ressource de s'exécuter en noop
mode, qui affichera simplement un message lorsque Puppet est exécuté et que le fichier n'existe pas:
file { '/path/to/myfile':
ensure => 'present',
noop => 'true',
}
Vous devez créer votre propre fonction ou utiliser exec avec la commande onlyif. quelque chose comme :
exec { "mycommand":
path => "/usr/bin:/usr/sbin:/bin",
onlyif => "test -f /etc/blalba" //yours command
}
creates => '/etc/blabla'
" ne serait-il pas mieux qu'un " onlyif
"?
creates
aurait le même résultat et serait beaucoup plus simple (et un peu plus rapide). Oui, en général, onlyif
offre plus de flexibilité.