Puppet Class: ceilometer::agent::compute

Inherits:
ceilometer
Defined in:
manifests/agent/compute.pp

Overview

The ceilometer::agent::compute class installs the ceilometer compute agent Include this class on all nova compute nodes

Parameters

[*enabled*]
  (optional) Should the service be enabled.
  Defaults to true.

[*manage_service*]
  (optional)  Whether the service should be managed by Puppet.
  Defaults to true.
package_ensure

(optional) ensure state for package. Defaults to ‘present’

Parameters:

  • manage_service (Any) (defaults to: true)
  • enabled (Any) (defaults to: true)
  • package_ensure (Any) (defaults to: 'present')


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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
# File 'manifests/agent/compute.pp', line 17

class ceilometer::agent::compute (
  $manage_service   = true,
  $enabled          = true,
  $package_ensure   = 'present',
) inherits ceilometer {

  include ceilometer::params

  Ceilometer_config<||> ~> Service['ceilometer-agent-compute']

  Package['ceilometer-agent-compute'] -> Service['ceilometer-agent-compute']
  package { 'ceilometer-agent-compute':
    ensure => $package_ensure,
    name   => $::ceilometer::params::agent_compute_package_name,
  }

  if $::ceilometer::params::libvirt_group {
    User['ceilometer'] {
      groups => ['nova', $::ceilometer::params::libvirt_group]
    }
  } else {
    User['ceilometer'] {
      groups => ['nova']
    }
  }

  if $manage_service {
    if $enabled {
      $service_ensure = 'running'
    } else {
      $service_ensure = 'stopped'
    }
  }

  Package['nova-common'] -> Package['ceilometer-common'] -> Service['ceilometer-agent-compute']
  service { 'ceilometer-agent-compute':
    ensure     => $service_ensure,
    name       => $::ceilometer::params::agent_compute_service_name,
    enable     => $enabled,
    hasstatus  => true,
    hasrestart => true,
  }

  #NOTE(dprince): This is using a custom (inline) file_line provider
  # until this lands upstream:
  # https://github.com/puppetlabs/puppetlabs-stdlib/pull/174
  Nova_config<| |> {
    before +> File_line_after[
      'nova-notification-driver-common',
      'nova-notification-driver-ceilometer'
    ],
  }

  file_line_after {
    'nova-notification-driver-common':
      line   =>
        'notification_driver=nova.openstack.common.notifier.rpc_notifier',
      path   => '/etc/nova/nova.conf',
      after  => '^\s*\[DEFAULT\]',
      notify => Service['nova-compute'];
    'nova-notification-driver-ceilometer':
      line   => 'notification_driver=ceilometer.compute.nova_notifier',
      path   => '/etc/nova/nova.conf',
      after  => '^\s*\[DEFAULT\]',
      notify => Service['nova-compute'];
  }

}