Puppet Class: librenms

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

Overview

Class: librenms

A Puppet module for managing librenms:

<www.librenms.org>

Parameters:

  • admin_pass (Any)
  • db_pass (Any)
  • version (Any) (defaults to: 'master')
  • php_timezone (String) (defaults to: 'Etc/UTC')
  • manage_apache (Boolean) (defaults to: true)
  • manage_php (Boolean) (defaults to: true)
  • ssl (Boolean) (defaults to: false)
  • apache_servername (Optional[String]) (defaults to: undef)
  • user (Any) (defaults to: 'librenms')
  • server_name (Any) (defaults to: $::fqdn)
  • clone_source (Any) (defaults to: $::librenms::params::clone_source)
  • clone_target (Any) (defaults to: '/opt/librenms')
  • admin_user (Any) (defaults to: 'admin')
  • admin_email (Any) (defaults to: $::servermonitor)
  • db_user (Any) (defaults to: 'librenms')
  • db_host (Any) (defaults to: 'localhost')
  • poller_modules (Any) (defaults to: {})
  • poller_threads (Any) (defaults to: 16)
  • php_config_overrides (Any) (defaults to: {})
  • rrdcached_pidfile (Any) (defaults to: '/run/rrdcached.pid')
  • rrdcached_socketfile (Any) (defaults to: '/run/rrdcached.sock')
  • rrdtool_version (Any) (defaults to: '1.7.0')
  • extra_config_file (Any) (defaults to: undef)


8
9
10
11
12
13
14
15
16
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
85
86
87
88
89
90
91
92
93
# File 'manifests/init.pp', line 8

class librenms
(
  $admin_pass,
  $db_pass,
  $version = 'master',
  String $php_timezone = 'Etc/UTC',
  Boolean $manage_apache = true,
  Boolean $manage_php = true,
  Boolean $ssl = false,
  Optional[String] $apache_servername = undef,
  $user = 'librenms',
  $server_name = $::fqdn,
  $clone_source = $::librenms::params::clone_source,
  $clone_target = '/opt/librenms',
  $admin_user = 'admin',
  $admin_email = $::servermonitor,
  $db_user = 'librenms',
  $db_host = 'localhost',
  $poller_modules = {},
  $poller_threads = 16,
  $php_config_overrides = {},
  $rrdcached_pidfile = '/run/rrdcached.pid',
  $rrdcached_socketfile = '/run/rrdcached.sock',
  $rrdtool_version = '1.7.0',
  $extra_config_file = undef,

) inherits librenms::params
{

  if $manage_php {
    package {['php-mysql', 'php-gd', 'php-cli', 'php-pear', 'php-curl',
              'php-snmp', 'php-net-ipv6', 'php-zip', 'php-mbstring',
              'php-json']:
              ensure => 'present',
              before => Class['::librenms::install'],
    }

    # validate.php will complain if PHP timezone is missing
    file { '/etc/php/7.2/cli/conf.d/30-timezone.ini':
      ensure  => 'present',
      content => "date.timezone = ${php_timezone}\n",
      owner   => 'root',
      group   => 'root',
      mode    => '0644',
      require => Package['php-cli'],
    }
  }

  class { '::librenms::rrdcached':
    rrdcached_pidfile    => $rrdcached_pidfile,
    rrdcached_socketfile => $rrdcached_socketfile,
  }

  class { '::librenms::install':
    version              => $version,
    user                 => $user,
    clone_source         => $clone_source,
    basedir              => $clone_target,
    php_config_overrides => $php_config_overrides,
  }

  class { '::librenms::config':
    system_user       => $user,
    basedir           => $clone_target,
    server_name       => $server_name,
    admin_user        => $admin_user,
    admin_pass        => $admin_pass,
    admin_email       => $admin_email,
    db_user           => $db_user,
    db_host           => $db_host,
    db_pass           => $db_pass,
    poller_modules    => $poller_modules,
    poller_threads    => $poller_threads,
    rrdtool_version   => $rrdtool_version,
    extra_config_file => $extra_config_file,
  }

  if $manage_apache {
    class { '::librenms::apache':
      servername => $apache_servername,
      ssl        => $ssl,
    }
  }

  include ::librenms::devices
}