Puppet Class: puppet_metrics_dashboard::grafana

Defined in:
manifests/grafana.pp

Summary

Install and configure Grafana

Overview

Install and configure Grafana. This work is broken out into its own class because it requires the InfluxDB service to be running before it can even start doing its thing.



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
# File 'manifests/grafana.pp', line 8

class puppet_metrics_dashboard::grafana {
  if $puppet_metrics_dashboard::use_dashboard_ssl {
    $grafana_cfg = {
      server => {
        http_port => $puppet_metrics_dashboard::grafana_http_port,
        protocol  => 'https',
        cert_file => $puppet_metrics_dashboard::dashboard_cert_file,
        cert_key  => $puppet_metrics_dashboard::dashboard_cert_key,
      },
    }

    puppet_metrics_dashboard::certs{'grafana':
      notify  => Service['grafana-server'],
      require => Package['grafana'],
      before  => Service['grafana-server'],
    }

  } else {
    $grafana_cfg = {
      server    => {
        http_port => $puppet_metrics_dashboard::grafana_http_port,
      },
    }
  }

  $_grafana_cfg = $grafana_cfg.merge({
    'security' => {
      'admin_user'     => 'admin',
      'admin_password' => $puppet_metrics_dashboard::grafana_password,
    }
  }).merge($puppet_metrics_dashboard::grafana_config) # Merge any custom config over the top finally

  class { 'grafana':
    install_method      => 'repo',
    manage_package_repo => false,
    version             => $puppet_metrics_dashboard::grafana_version,
    cfg                 => $_grafana_cfg,
    require             => Service[$puppet_metrics_dashboard::influx_db_service_name],
  }
}