Adds cron jobs from parameters

George Brown



9,242 latest version

3.4 quality score

Version information

  • 0.0.4 (latest)
  • 0.0.3
  • 0.0.2
  • 0.0.1
released Jul 4th 2014

Start using this module


gbrown/cron — version 0.0.4 Jul 4th 2014

Cron puppet module


This is a generic cron module for puppet.


This contains the main cron class and simply ensures that cron is running.

crontab class

The parameter $jobs is taken and wrapped with the create_resources function as such this simply takes cron jobs with the standard puppet cron type attributes.

There is also a $defaults parameter intended to minimise boiler plate. This enables default attributes to be set once and applied for all puppet defined cron jobs. In this class this is set to ensure the jobs is enabled and that root is the user to execute the jobs.

hourly, daily, weekly and monthly classes

These are similar to the crontab class but differ in that it is taking the puppet file type for the $jobs. To provide a consistent interface you simply need to specify the name of the job and the command to execute. This will likely be the same as jobs passed to the crontab class. See examples below.

Note: Creating jobs via parameters for these classes requires parser = future.

These classes also support pulling files from the files directory of the module itself on the puppet master. For example placing a file in files/hourly would result in the client picking up that file in /etc/cron.hourly/.


If the $heria_hash parameter is true values for $jobs across all hierarchies are used so cron jobs can be defined at multiple levels. This allows for a base set of cron jobs to be defined at a low level of the hierarchy and more specific cron jobs to be defined further up the hierarchy closer to what is likely more relevant definitions. This is definable in each of the classes expect in the service class. If defined in the main cron class as true it will take precedence over definitions in other classes.


All classes with the exception of the service class take a $purge parameter which if set to true will cause puppet to remove any cron jobs that are not provided by puppet. If defined in the main cron class as true it will take precedence over definitions in other classes.


A basic example of adding some cron jobs in YAML.

# Add two cron jobs to crontab

    command:  '/bin/echo "This is run as root every 12 hours"'
    hour:     '12'
    command:  '/bin/echo "This is run as puppet every 12 hours"'
    hour:     '12'
    user:     'puppet'

# Only allow puppet controlled jobs in /etc/cron.daily

cron::daily::pruge: 'true'

# Add job to /etc/cron.daily/

    command: '/bin/echo "Today is $(/bin/date)"'


This module depends upon puppetlabs/stdlib for validation checks.