Puppet Class: pcp

Inherits:
pcp::params
Defined in:
manifests/init.pp

Summary

Manage PCP

Overview

Examples:

include ::pcp

Parameters:

  • ensure (Enum['running', 'stopped', 'absent']) (defaults to: 'running')

    Defines state of PCP. Valid values are ‘running`, `stopped`, or `absent`. Default is `running`.

  • manage_repo (Boolean) (defaults to: true)

    Determines if PCP repo should be managed. Default is ‘true`.

  • repo_baseurl (String) (defaults to: $pcp::params::repo_baseurl)

    Base URL to pcp yum repo. Default is ‘dl.bintray.com/pcp/el%operatingsystemmajrelease`.

  • package_ensure (String) (defaults to: 'present')

    Package ensure property. Value is set to absent if ‘ensure` is `absent`. Default is `present`.

  • package_name (String) (defaults to: 'pcp')

    Name of PCP package. Default is ‘pcp`.

  • extra_packages (Array) (defaults to: [])

    Array of extra packages to install for PCP

  • service_ensure (Optional[String]) (defaults to: undef)

    Set service ensure property for ‘pmcd`, `pmie` and `pmlogger` services. Default is based on `ensure` parameter.

  • service_enable (Optional[Boolean]) (defaults to: undef)

    Set service enable property for ‘pmcd`, `pmie` and `pmlogger` services. Default is based on `ensure` parameter.

  • enable_pmproxy (Boolean) (defaults to: false)

    Boolean that determines if pmproxy service is running/enabled. Default is ‘false`.

  • manage_user (Boolean) (defaults to: true)

    Boolean that sets if pcp user / group is managed. Default is ‘true`.

  • pcp_group_gid (Optional[Integer]) (defaults to: undef)

    pcp group GID. Default is ‘undef`.

  • pcp_user_uid (Optional[Integer]) (defaults to: undef)

    pcp user UID. Default is ‘undef`.

  • cron_ensure (Optional[String]) (defaults to: undef)

    Ensure passed to cron files. Default based on value of ‘ensure`.

  • pmlogger_cron_template (String) (defaults to: 'pcp/pcp-pmlogger.cron.erb')

    Template used for pmlogger cron. Default is ‘pcp/pcp-pmlogger.cron.erb`.

  • pmie_cron_template (String) (defaults to: 'pcp/pcp-pmie.cron.erb')

    Template used for pmie cron. Default is ‘pcp/pcp-pmie.cron.erb`.

  • include_default_pmlogger (Boolean) (defaults to: true)

    Boolean that determines if default install pmlogger is installed. Default is ‘true`.

  • include_default_pmie (Boolean) (defaults to: true)

    Boolean that determines if default install pmie is installed. Default is ‘true`.

  • pmlogger_daily_args (String) (defaults to: '-X xz -x 3')

    Arguments given to pmlogger_daily that is executed via cron. Default is ‘’-X xz -x 3’‘.

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

    Hash that defines ‘pcp::pmda` resources.



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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'manifests/init.pp', line 64

class pcp (
  Enum['running', 'stopped', 'absent'] $ensure  = 'running',
  # Repo
  Boolean $manage_repo                          = true,
  String $repo_baseurl                          = $pcp::params::repo_baseurl,
  # Package
  String $package_ensure                        = 'present',
  String $package_name                          = 'pcp',
  Array $extra_packages                         = [],
  # Service
  Optional[String] $service_ensure              = undef,
  Optional[Boolean] $service_enable             = undef,
  Boolean $enable_pmproxy                       = false,
  # User
  Boolean $manage_user                          = true,
  Optional[Integer] $pcp_group_gid              = undef,
  Optional[Integer] $pcp_user_uid               = undef,
  # Config
  Optional[String] $cron_ensure                 = undef,
  String $pmlogger_cron_template                = 'pcp/pcp-pmlogger.cron.erb',
  String $pmie_cron_template                    = 'pcp/pcp-pmie.cron.erb',
  Boolean $include_default_pmlogger             = true,
  Boolean $include_default_pmie                 = true,
  String $pmlogger_daily_args                   = '-X xz -x 3',
  # Resources
  Hash $pmdas                                   = {},
) inherits pcp::params {

  case $ensure {
    'running': {
      $_package_ensure    = $package_ensure
      $_directory_ensure  = 'directory'
      $_resource_ensure   = 'present'
      $_cron_default      = 'file'
      $_service_ensure_default  = 'running'
      $_service_enable_default  = true
    }
    'stopped': {
      $_package_ensure    = $package_ensure
      $_directory_ensure  = 'directory'
      $_resource_ensure   = 'present'
      $_cron_default      = 'absent'
      $_service_ensure_default  = 'stopped'
      $_service_enable_default  = false
    }
    'absent': {
      $_package_ensure    = 'absent'
      $_directory_ensure  = 'absent'
      $_resource_ensure   = 'absent'
      $_cron_default      = 'absent'
      $_service_ensure_default  = 'stopped'
      $_service_enable_default  = false
    }
    default: {
      fail("Module ${module_name}: ensure must be either running, stopped or absent.  ${ensure} given.")
    }
  }

  $_cron_file_ensure = pick($cron_ensure, $_cron_default)
  $_service_ensure = pick($service_ensure, $_service_ensure_default)
  $_service_enable = pick($service_enable, $_service_enable_default)

  anchor { 'pcp::start': }
  anchor { 'pcp::end': }

  include pcp::repo
  include pcp::user
  include pcp::install
  include pcp::config
  include pcp::resources
  include pcp::service

  Anchor['pcp::start']
  -> Class['pcp::repo']
  -> Class['pcp::user']
  -> Class['pcp::install']
  -> Class['pcp::config']
  -> Class['pcp::resources']
  -> Class['pcp::service']
  -> Anchor['pcp::end']

}