Configure and manage incron jobs with focus on tidiness
Table of Contents
Description
This module is an interface for incron jobs with the main idea to be tidy. That means that any jobs that are not managed should not exist on the host.
Once you include incron, simply removing an incron::job from your manifests is sufficient for it to be cleaned up on your next agent run. No need to ensure => absent anymore. Enjoy!
Setup
Beginning with incron
To start out with incron:
include incron
This will install the required package, enable incron service and start managing /etc/incron.d directory.
Warning: all unmanaged files in /etc/incron.d will be removed at this point. Be careful!
Usage
All interactions with incron jobs should be done using incron::job resource.
It works with at least 3 parameters:
incron::job { 'upload_file':
path => '/watched_directory',
event => 'IN_CLOSE_WRITE',
command => '/usr/local/bin/upload_file $#',
}
Reference
Type Aliases
-
Incron::Event- supported inotify events.
Full reference
Check out REFERENCE for up-to-date details.
Limitations
-
Supported and tested on:
-
Ubuntu 22.04, 24.04
-
Debian 12
-
AlmaLinux 9, Rocky 9
-
FreeBSD 14, 15
-
-
On RHEL-family systems (e.g. AlmaLinux, Rocky),
incronships only in EPEL, not the base repositories. This module does not manage repositories, so enable EPEL before including it, e.g.include epel(from thepuppet/epelmodule) ordnf install epel-release. On RHEL-family the service isincrond(handled automatically via the module’s Hiera data). -
On FreeBSD, incron config lives under
/usr/local/etc(incron.conf,incron.allow,incron.deny,incron.d) and the service isincron(the rc script name; the daemon itself isincrond); the per-user spool stays at/var/spool/incron. These are handled automatically via the module’s Hiera data.
Development
I’ll be happy to know you’re using this for one reason or the other. And if you want to contribute - even better. Feel free to submit an issue / fire up a PR / whatever.