Risposte:
Il modo "nativo" per farlo senza i dirigenti se sei su Puppet 2.6.6+:
file { '/path/to/myfile':
ensure => 'present',
audit => 'all',
}
(Questa funzionalità esiste da Puppet 2.6.0, ma ci sono stati diversi problemi con l'auditing che sono stati eliminati solo con la versione 2.6.6.)
Se hai una versione precedente, puoi anche dire alla risorsa di essere eseguita in noopmodalità, che visualizzerà solo un messaggio quando Puppet viene eseguito e il file non esiste:
file { '/path/to/myfile':
ensure => 'present',
noop => 'true',
}
Dovresti creare la tua funzione o usare exec con il comando onlyif. qualcosa di simile a :
exec { "mycommand":
path => "/usr/bin:/usr/sbin:/bin",
onlyif => "test -f /etc/blalba" //yours command
}
creates => '/etc/blabla'" non sarebbe meglio di un " onlyif"?
createsavrebbe lo stesso risultato e sarebbe molto più semplice (e un po 'più veloce). Sì, in generale onlyifoffre maggiore flessibilità.