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 ở noopchế độ, 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"?
createssẽ 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 onlyifkhông cung cấp linh hoạt hơn.