1
2
3
4
5
6
7
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
|
# File 'manifests/master/graphite.pp', line 1
class classroom_legacy::master::graphite {
# Configure Graphite & Grafana
include '::apache'
########## Grafana
class {'grafana':
graphite_host => $::ipaddress,
elasticsearch_host => $::fqdn,
elasticsearch_port => 9200,
}
apache::vhost { $::fqdn:
servername => $::fqdn,
port => 9000,
docroot => '/opt/grafana',
error_log_file => 'grafana_error.log',
access_log_file => 'grafana_access.log',
directories => [
{
path => '/opt/grafana',
options => [ 'None' ],
allow => 'from All',
allow_override => [ 'None' ],
order => 'Allow,Deny',
}
],
require => Class['grafana'],
}
########## Graphite
file { '/opt/graphite':
ensure => 'directory',
}
apache::vhost { $::ipaddress:
port => '80',
docroot => '/opt/graphite/webapp',
wsgi_application_group => '%{GLOBAL}',
wsgi_daemon_process => 'graphite',
wsgi_daemon_process_options => {
processes => '5',
threads => '5',
display-name => '%{GROUP}',
inactivity-timeout => '120',
},
wsgi_import_script => '/opt/graphite/conf/graphite.wsgi',
wsgi_import_script_options => {
process-group => 'graphite',
application-group => '%{GLOBAL}'
},
wsgi_process_group => 'graphite',
wsgi_script_aliases => {
'/' => '/opt/graphite/conf/graphite.wsgi'
},
headers => [
'set Access-Control-Allow-Origin "*"',
'set Access-Control-Allow-Methods "GET, OPTIONS, POST"',
'set Access-Control-Allow-Headers "origin, authorization, accept"',
],
directories => [{
path => '/media/',
order => 'deny,allow',
allow => 'from all'}
],
before => Class['graphite'],
}
# because graphite is terrible and tries to manage **gcc** unless you disable packages :-/
# This conflicts with our own classroom_legacy::master::dependencies::rubygems class
package { ['python-devel', 'python2-pip']:
ensure => present,
}
class { 'graphite':
gr_web_server => 'none',
gr_disable_webapp_cache => true,
gr_manage_python_packages => false, # see above.
gr_storage_schemas => [
{
name => 'carbon',
pattern => '^carbon\.',
retentions => '1m:90d'
},
{
name => 'default',
pattern => '.*',
retentions => '1m:30m,1m:1d,5m:2y'
},
],
}
}
|