Puppet Class: mcollective::facts::cronjob

Inherits:
mcollective
Inherited by:
mcollective::facts
Defined in:
manifests/facts/cronjob.pp

Overview

Class: mcollective::facts

This module installs a cron script that puts Puppet facts in a file for MCollective to use

Example

Hiera:

mcollective::facts::cronjob::run_every: 15   # every quarter hour

Parameters:

  • run_every (Any) (defaults to: 'unknown')


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'manifests/facts/cronjob.pp', line 10

class mcollective::facts::cronjob(
  $run_every = 'unknown',
)
inherits mcollective {

  # if they passed in Hiera value use that.
  $enable = $run_every ? {
    'unknown' => 'absent',
    undef     => 'absent',
    ''        => 'absent',
    default   => 'present',
  }

  # Define the minute to be all if runevery wasn't defined
  $minute = $enable ? {
    'absent'  => '*',
    'present' => "*/${run_every}",
  }
  
  # shorten for ease of use
  $yamlfile = "${mcollective::etcdir}/facts.yaml"

  cron { 'mcollective-facts':
    ensure  => $enable,
    command => "facter --puppet --yaml > ${yamlfile}.new && ! diff -q ${yamlfile}.new ${yamlfile} > /dev/null && mv -f ${yamlfile}.new ${yamlfile}",
    minute  => $minute,
  }
}