Jawaban:
Cara "asli" untuk melakukan ini tanpa eksekutif jika Anda menggunakan Wayang 2.6.6+:
file { '/path/to/myfile':
ensure => 'present',
audit => 'all',
}
(Fungsi ini ada sejak Puppet 2.6.0, tetapi ada sejumlah masalah dengan audit yang hanya benar-benar dituntaskan dengan rilis 2.6.6.)
Jika Anda menggunakan versi yang lebih lama, Anda juga dapat memberi tahu sumber untuk menjalankan dalam noop
mode, yang hanya akan menampilkan pesan ketika Puppet dijalankan dan file tidak ada:
file { '/path/to/myfile':
ensure => 'present',
noop => 'true',
}
Anda harus membuat fungsi Anda sendiri atau menggunakan exec dengan perintah onlyif. sesuatu seperti :
exec { "mycommand":
path => "/usr/bin:/usr/sbin:/bin",
onlyif => "test -f /etc/blalba" //yours command
}
creates => '/etc/blabla'
" lebih baik daripada " onlyif
"?
creates
akan memiliki hasil yang sama dan lebih sederhana (dan sedikit lebih cepat). Ya, secara umum onlyif
memang memberikan lebih banyak fleksibilitas.