Puppet Class: cloudera::cm

Inherits:
cloudera::params
Defined in:
manifests/cm.pp

Overview

Class: cloudera::cm

This class handles installing and configuring the Cloudera Manager Agent.

Parameters:

ensure

Ensure if present or absent. Default: present

autoupgrade

Upgrade package automatically, if there is a newer version. Default: false

service_ensure

Ensure if service is running or stopped. Default: running

server_host

Hostname of the Cloudera Manager server. Default: localhost

server_port

Port to which the Cloudera Manager server is listening. Default: 7182

use_tls

Whether to enable TLS on the Cloudera Manager agent. TLS needs to be enabled on the server prior to setting this to true. Default: false

verify_cert_file

The file holding the public key of the Cloudera Manager server as well as the chain of signing certificate authorities. PEM format. Default: /etc/pki/tls/certs/cloudera_manager.crt or

/etc/ssl/certs/cloudera_manager.crt

Actions:

Installs the packages. Configures the server connection. Starts the service.

Requires:

Package['jdk']

Sample Usage:

class { 'cloudera::cm':
  server_host => 'smhost.example.com',
}

Authors:

Mike Arnold <mike@razorsedge.org>

Copyright © 2013 Mike Arnold, unless otherwise noted.

Parameters:

  • ensure (Any) (defaults to: $cloudera::params::ensure)
  • autoupgrade (Any) (defaults to: $cloudera::params::safe_autoupgrade)
  • service_ensure (Any) (defaults to: $cloudera::params::service_ensure)
  • server_host (Any) (defaults to: $cloudera::params::cm_server_host)
  • server_port (Any) (defaults to: $cloudera::params::cm_server_port)
  • use_tls (Any) (defaults to: $cloudera::params::safe_cm_use_tls)
  • verify_cert_file (Any) (defaults to: $cloudera::params::verify_cert_file)


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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'manifests/cm.pp', line 62

class cloudera::cm (
  $ensure           = $cloudera::params::ensure,
  $autoupgrade      = $cloudera::params::safe_autoupgrade,
  $service_ensure   = $cloudera::params::service_ensure,
  $server_host      = $cloudera::params::cm_server_host,
  $server_port      = $cloudera::params::cm_server_port,
  $use_tls          = $cloudera::params::safe_cm_use_tls,
  $verify_cert_file = $cloudera::params::verify_cert_file
) inherits cloudera::params {
  # Validate our booleans
  validate_bool($autoupgrade)
  validate_bool($use_tls)

  case $ensure {
    /(present)/: {
      if $autoupgrade == true {
        $package_ensure = 'latest'
      } else {
        $package_ensure = 'present'
      }

      if $service_ensure in [ running, stopped ] {
        $service_ensure_real = $service_ensure
        $service_enable = true
      } else {
        fail('service_ensure parameter must be running or stopped')
      }
      $file_ensure = 'present'
    }
    /(absent)/: {
      $package_ensure = 'absent'
      $service_ensure_real = 'stopped'
      $service_enable = false
      $file_ensure = 'absent'
    }
    default: {
      fail('ensure parameter must be present or absent')
    }
  }

  package { 'cloudera-manager-agent':
    ensure => $package_ensure,
    tag    => 'cloudera-manager',
  }

  package { 'cloudera-manager-daemons':
    ensure => $package_ensure,
    tag    => 'cloudera-manager',
  }

  file { 'scm-config.ini':
    ensure  => $file_ensure,
    path    => '/etc/cloudera-scm-agent/config.ini',
    content => template("${module_name}/scm-config.ini.erb"),
    require => Package['cloudera-manager-agent'],
    notify  => Service['cloudera-scm-agent'],
  }

  service { 'cloudera-scm-agent':
    ensure     => $service_ensure_real,
    enable     => $service_enable,
    hasrestart => true,
    hasstatus  => true,
    require    => [ Package['cloudera-manager-agent'], Package['cloudera-manager-daemons'], ],
  }
}