Câu trả lời:
Cách "bản địa" để thực hiện việc này mà không cần thực thi nếu bạn đang ở Puppet 2.6.6+:
file { '/path/to/myfile':
ensure => 'present',
audit => 'all',
}
(Chức năng này tồn tại kể từ Puppet 2.6.0, nhưng có một số vấn đề với việc kiểm toán chỉ thực sự được khắc phục với bản phát hành 2.6.6.)
Nếu bạn đang sử dụng phiên bản cũ hơn, bạn cũng có thể yêu cầu tài nguyên chạy ở noop
chế độ, nó sẽ chỉ hiển thị một thông báo khi Puppet được chạy và tệp không tồn tại:
file { '/path/to/myfile':
ensure => 'present',
noop => 'true',
}
Bạn nên tạo chức năng của riêng bạn hoặc sử dụng exec với lệnh onlyif. cái gì đó như :
exec { "mycommand":
path => "/usr/bin:/usr/sbin:/bin",
onlyif => "test -f /etc/blalba" //yours command
}
creates => '/etc/blabla'
" tốt hơn " onlyif
"?
creates
sẽ có kết quả tương tự và đơn giản hơn nhiều (và nhanh hơn một chút). Vâng, nói chung onlyif
không cung cấp linh hoạt hơn.