Puppet Class: grafana
- Defined in:
- modules/grafana/manifests/init.pp
Overview
SPDX-License-Identifier: Apache-2.0
Class: grafana
Grafana is an open-source, feature-rich dashboard and graph editor for Graphite and InfluxDB. See <grafana.org/> for details.
Parameters
- config
-
A hash of Grafana configuration options. For a list of available configuration options and their purpose, see <docs.grafana.org/installation/configuration/>.
- ldap
-
A hash meant of ldap.toml configuration options See docs.grafana.org/installation/ldap/
Examples
class { '::grafana':
config => {
server => {
http_addr => '127.0.0.1',
domain => 'grafana.wikimedia.org',
},
},
}
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 94 95 96 97 98 99 |
# File 'modules/grafana/manifests/init.pp', line 29
class grafana(
Hash $config,
Hash $ldap = {},
) {
$defaults = {
'dashboards.json' => {
enabled => true,
path => '/var/lib/grafana/dashboards',
},
}
apt::package_from_component { 'thirdparty-grafana':
component => 'thirdparty/grafana',
packages => ['grafana']
}
file { '/etc/grafana/grafana.ini':
content => wmflib::ini($defaults, $config),
owner => 'root',
group => 'grafana',
mode => '0440',
require => Package['grafana'],
# Explicit ordering to force first-run configuration options to be applied
before => Service['grafana-server'],
}
# As we're on Grafana 5.x, we need to install this yaml file to tell grafana
# to read the dashboards from the place that earlier versions would by default.
file { '/etc/grafana/provisioning/dashboards/provision-puppet-dashboards.yaml':
source => 'puppet:///modules/grafana/provision-puppet-dashboards.yaml',
owner => 'root',
group => 'grafana',
mode => '0440',
require => Package['grafana'],
before => Service['grafana-server'],
}
file { '/var/lib/grafana/dashboards':
ensure => directory,
owner => 'grafana',
group => 'grafana',
mode => '0755',
recurse => true,
purge => true,
force => true,
require => Package['grafana'],
}
service { 'grafana-server':
ensure => running,
enable => true,
provider => 'systemd',
subscribe => [
File['/etc/grafana/grafana.ini'],
Package['grafana'],
],
}
unless $ldap.empty {
file { '/etc/grafana/ldap.toml':
owner => 'root',
group => 'grafana',
mode => '0440',
content => template('grafana/ldap.toml.erb'),
require => Package['grafana'],
notify => Service['grafana-server'],
before => Service['grafana-server'],
}
}
}
|