Puppet Class: newrelic::server::linux

Inherits:
newrelic::params
Defined in:
manifests/server/linux.pp

Overview

Class: newrelic::server::linux

This class installs and configures NewRelic server monitoring.

Parameters

service_enable

Specify the service startup state. Defaults to true. Possible value is false.

service_ensure

Specify the service running state. Defaults to ‘running’. Possible value is ‘stopped’.

package_ensure

Specify the package update state. Defaults to ‘present’. Possible value is ‘latest’.

license_key

Specify your Newrelic License Key.

Examples

class { 'newrelic::server::linux':
    license_key    => 'your license key here',
    package_ensure => 'latest',
    service_ensure => 'running',
}

Authors

Felipe Salum <fsalum@gmail.com> Craig Watson <craig.watson@claranet.uk>

Copyright 2012 Felipe Salum Copyright 2017 Claranet

Parameters:

  • license_key (String)
  • manage_repo (Boolean) (defaults to: $::newrelic::params::manage_repo)
  • package_name (String) (defaults to: $::newrelic::params::server_package_name)
  • service_name (String) (defaults to: $::newrelic::params::server_service_name)
  • package_ensure (String) (defaults to: 'present')
  • service_enable (Boolean) (defaults to: true)
  • service_ensure (String) (defaults to: 'running')
  • exec_path (String) (defaults to: $facts['path'])
  • logfile (String) (defaults to: '/var/log/newrelic/nrsysmond.log')
  • log_level (Variant[Undef,String]) (defaults to: undef)
  • proxy (Variant[Undef,String]) (defaults to: undef)
  • ssl (Variant[Undef,String]) (defaults to: undef)
  • ssl_ca_bundle (Variant[Undef,String]) (defaults to: undef)
  • ssl_ca_path (Variant[Undef,String]) (defaults to: undef)
  • pidfile (Variant[Undef,String]) (defaults to: undef)
  • collector_host (Variant[Undef,String]) (defaults to: undef)
  • labels (Variant[Undef,String]) (defaults to: undef)
  • timeout (Variant[Undef,String]) (defaults to: undef)
  • hostname (Variant[Undef,String]) (defaults to: undef)


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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'manifests/server/linux.pp', line 37

class newrelic::server::linux (
  String                $license_key,
  Boolean               $manage_repo    = $::newrelic::params::manage_repo,
  String                $package_name   = $::newrelic::params::server_package_name,
  String                $service_name   = $::newrelic::params::server_service_name,
  String                $package_ensure = 'present',
  Boolean               $service_enable = true,
  String                $service_ensure = 'running',
  String                $exec_path      = $facts['path'],
  String                $logfile        = '/var/log/newrelic/nrsysmond.log',
  Variant[Undef,String] $log_level      = undef,
  Variant[Undef,String] $proxy          = undef,
  Variant[Undef,String] $ssl            = undef,
  Variant[Undef,String] $ssl_ca_bundle  = undef,
  Variant[Undef,String] $ssl_ca_path    = undef,
  Variant[Undef,String] $pidfile        = undef,
  Variant[Undef,String] $collector_host = undef,
  Variant[Undef,String] $labels         = undef,
  Variant[Undef,String] $timeout        = undef,
  Variant[Undef,String] $hostname       = undef,
) inherits newrelic::params {

  warning('Use of newrelic::server::linux is deprecated and will be removed in a future release. Please use newrelic::infra instead.')

  $logdir = dirname($logfile)

  if $manage_repo == true {
    include ::newrelic::repo::legacy
    Package[$package_name] {
      require => $::newrelic::repo::legacy::require,
    }
  }

  package { $package_name:
    ensure => $package_ensure,
  }

  exec { 'install_newrelic_license_key':
    command => "touch /etc/newrelic/nrsysmond.cfg; /usr/sbin/nrsysmond-config --set license_key=${license_key}",
    user    => 'root',
    path    => $exec_path,
    unless  => "/bin/grep -q ${license_key} /etc/newrelic/nrsysmond.cfg",
    notify  => Service[$service_name],
    require => Package[$package_name]
  }

  file { $logdir:
    ensure  => directory,
    owner   => 'newrelic',
    group   => 'newrelic',
    require => Exec['install_newrelic_license_key'],
  }

  file { '/etc/newrelic/nrsysmond.cfg':
    ensure  => file,
    path    => '/etc/newrelic/nrsysmond.cfg',
    content => template('newrelic/server/nrsysmond.cfg.erb'),
    require => File[$logdir],
    notify  => Service[$service_name],
  }

  service { $service_name:
    ensure     => $service_ensure,
    enable     => $service_enable,
    hasrestart => true,
    hasstatus  => true,
    require    => File['/etc/newrelic/nrsysmond.cfg'],
  }

}