For auditing, there is a native Puppet metaparameter of audit:
file { '/etc/hosts':
audit => [ owner, group, mode ],
}
Puppet will then generate auditing log messages, which are available in your standard Puppet reports:
audit change: previously recorded value owner root has been changed to owner james
One approach that you can use Puppet patch-management for is:
-
Manage your own mirrors of external package repositories with Puppet
-
Control when you update those mirrors when a patch comes out Have
-
Puppet update packages on a rough schedule with an Exec resource, cron-job etc.