Forge Home

incron

Configure and manage incron jobs with focus on tidiness

22,131 downloads

10,145 latest version

5.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.7.0 (latest)
  • 0.6.0
  • 0.5.0
  • 0.4.0
  • 0.3.0
  • 0.2.0
  • 0.1.0
released Mar 14th 2018
This version is compatible with:
  • Puppet Enterprise 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
  • Puppet >= 4.4.0 < 6.0.0

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'pegas-incron', '0.3.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add pegas-incron
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install pegas-incron --version 0.3.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

pegas/incron — version 0.3.0 Mar 14th 2018

Configure and manage incron jobs with focus on tidiness

Build Status Puppet Forge Puppet Forge - Downloads Puppet Forge - Score

Table of Contents

  1. Description
  2. Setup - The basics of getting started with incron
  3. Usage - Configuration options and additional functionality
  4. Reference - An under-the-hood peek at what the module is doing and how
  5. Limitations - OS compatibility, etc.
  6. Development - Guide for contributing to the module

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

Public Classes

  • incron: Main entry point for incron class which must be included in order to start managing all incron-related resources.

Private Classes

  • incron::config: This class handles incron configuration files.
  • incron::install: This class handles incron package.
  • incron::purge: Purge /etc/incron.d directory.
  • incron::remove: This class handles removal of all incron-related resources.
  • incron::service: This class handles incron service.

Defined types

  • incron::job: Primary incron resource used to create incron jobs.
  • incron::whitelist: Use this to whitelist any system incron jobs you don't want to touch. This will make sure that /etc/incron.d/${title} won't get deleted nor modified.

Classes

incron

Main entry point for incron class which must be included in order to start managing all incron-related resources.

Examples

Installing incron
include incron
Uninstalling incron and all related resources
class { 'incron':
  ensure => absent,
}

Parameters

The following parameters are available in the incron class.

ensure

Data type: Enum[present, absent]

Whether to enable or disable incron on the system.

Default value: present

package_version

Data type: String[1]

Provide custom incron package version here.

Default value: installed

allowed_users

Data type: Array[String[1]]

List of users allowed to use incron. By default, only root can.

Default value: [ ]

denied_users

Data type: Array[String[1]]

List of users denied to use incron.

Default value: [ ]

service_manage

Data type: Boolean

Whether to manage incron service at all.

Default value: true

service_ensure

Data type: Enum[running, stopped]

Incron service's 'ensure' parameter.

Default value: running

service_enable

Data type: Boolean

Incron service's 'enable' parameter.

Default value: true

purge_noop

Data type: Boolean

Run purging in noop mode.

Default value: false

Defined types

incron::job

Primary incron resource used to create incron jobs.

Examples

Using incron::job resource
incron::job { 'process_file':
  path    => '/upload',
  event   => 'IN_CLOSE_WRITE',
  command => '/usr/bin/process_file $#',
}

Parameters

The following parameters are available in the incron::job defined type.

command

Data type: String

Command to execute on triggered event

event

Data type: Variant[Incron::Event, Array[Incron::Event, 2]]

inotify event (or an array of events)

path

Data type: Stdlib::Unixpath

Path to watched directory

mode

Data type: Pattern[/^0[46][046]{2}$/]

Incron job file permissions, which is located at /etc/incron.d/${name}

Default value: '0644'

incron::whitelist

Use this to whitelist any system incron jobs you don't want to touch. This will make sure that /etc/incron.d/${title} won't get deleted nor modified.

Examples

Using incron::whitelist resource
incron::whitelist { 'uploader': }

Limitations

This module has only been used and tested on the following Ubuntu versions:

  • 14.04
  • 16.04
  • 18.04 (currently tested in Docker containers)

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.