Puppet Class: psick::puppet::tp

Defined in:
manifests/puppet/tp.pp

Summary

This psick profile manages puppet with Tiny Puppet (tp)

Overview

psick::puppet::tp

Examples:

Include it to install puppet

include psick::puppet::tp

Include in PSICK via hiera (yaml)

psick::profiles::linux_classes:
  puppet: psick::puppet::tp

Manage extra configs via hiera (yaml) with templates based on custom options

psick::puppet::tp::ensure: present
psick::puppet::tp::resources_hash:
  tp::conf:
    puppet:
      epp: profile/puppet/puppet.conf.epp
    puppet::dot.conf:
      epp: profile/puppet/dot.conf.epp
      base_dir: conf
psick::puppet::tp::options_hash:
  key: value

Enable default auto configuration, if configurations are available

for the underlying system and the given auto_conf value, they are
automatically added (Default value is inherited from global $::psick::auto_conf
psick::puppet::tp::auto_conf: 'default'

Parameters:

  • manage (Boolean) (defaults to: $::psick::manage)

    If to actually manage any resource in this profile or not

  • ensure (Psick::Ensure) (defaults to: 'present')

    If to install or remove puppet. Valid values are present, absent, latest or any version string, matching the expected puppet package version.

  • resources_hash (Hash) (defaults to: {})

    An hash of tp::conf and tp::dir resources for puppet. tp::conf params: github.com/example42/puppet-tp/blob/master/manifests/conf.pp tp::dir params: github.com/example42/puppet-tp/blob/master/manifests/dir.pp

  • resources_auto_conf_hash (Hash) (defaults to: {})

    The default resources hash if auto_conf is set. Default value is based on $::psick::auto_conf. Can be overridden or set to an empty hash. The final resources manages are the ones specified here and in $resources_hash. Check psick::puppet::tp:resources_auto_conf_hash in data/$auto_conf/*.yaml for the auto_conf defaults.

  • options_hash (Hash) (defaults to: {})

    An open hash of options to use in the templates referenced in the tp::conf entries of the $resouces_hash.

  • options_auto_conf_hash (Hash) (defaults to: {})

    The default options hash if auto_conf is set. Check psick::puppet::tp:options_auto_conf_hash in data/$auto_conf/*.yaml for the auto_conf defaults.

  • settings_hash (Hash) (defaults to: {})

    An hash of tp settings to override default puppet file paths, package names, repo info and whatever can match Tp::Settings data type: github.com/example42/puppet-tp/blob/master/types/settings.pp

  • auto_prereq (Boolean) (defaults to: $::psick::auto_prereq)

    If to automatically install eventual dependencies for puppet. Set to false if you have problems with duplicated resources, being sure that you manage the prerequistes to install puppet (other packages, repos or tp installs).



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'manifests/puppet/tp.pp', line 51

class psick::puppet::tp (
  Psick::Ensure   $ensure                   = 'present',
  Boolean         $manage                   = $::psick::manage,
  Hash            $resources_hash           = {},
  Hash            $resources_auto_conf_hash = {},
  Hash            $options_hash             = {},
  Hash            $options_auto_conf_hash   = {},
  Hash            $settings_hash            = {},
  Boolean         $auto_prereq              = $::psick::auto_prereq,
) {

  if $manage {
    $options_all = $options_auto_conf_hash + $options_hash
    $install_defaults = {
      ensure        => $ensure,
      options_hash  => $options_all,
      settings_hash => $settings_hash,
      auto_repo     => $auto_prereq,
      auto_prereq   => $auto_prereq,
    }
    tp::install { 'puppet-agent':
      * => $install_defaults,
    }

    # tp::conf iteration based on
    $file_ensure = $ensure ? {
      'absent' => 'absent',
      default  => 'present',
    }
    $conf_defaults = {
      ensure        => $file_ensure,
      options_hash  => $options_all,
      settings_hash => $settings_hash,
    }
    $tp_confs = pick($resources_auto_conf_hash['tp::conf'], {}) + pick($resources_hash['tp::conf'], {})
    # All the tp::conf defines declared here
    $tp_confs.each | $k,$v | {
      tp::conf { $k:
        * => $conf_defaults + $v,
      }
    }

    # tp::dir iterated over $dir_hash
    $dir_defaults = {
      ensure             => $file_ensure,
      settings_hash      => $settings_hash,
    }
    # All the tp::dir defines declared here
    $tp_dirs = pick($resources_auto_conf_hash['tp::dir'], {}) + pick($resources_hash['tp::dir'], {})
    $tp_dirs.each | $k,$v | {
      tp::dir { $k:
        * => $dir_defaults + $v,
      }
    }
  }
}