These are really stubs, and need some more testing and integration, but there were some people who expressed interest in this, so let's push it early.
86 lines
1.8 KiB
Plaintext
86 lines
1.8 KiB
Plaintext
import "deploy"
|
|
import "golang"
|
|
|
|
class server() {
|
|
pkg "grafana" { # on fedora
|
|
state => "installed",
|
|
}
|
|
|
|
file "/etc/grafana/" {
|
|
state => $const.res.file.state.exists,
|
|
#recurse => true,
|
|
#purge => true,
|
|
owner => "root",
|
|
group => "grafana",
|
|
mode => "u=rwx,g=rx,o=", # dir
|
|
}
|
|
|
|
file "/etc/grafana/ldap.toml" {
|
|
state => $const.res.file.state.exists,
|
|
content => deploy.readfile("/files/ldap.toml"), # XXX: eventually template
|
|
owner => "root",
|
|
group => "grafana",
|
|
mode => "u=rw,g=r,o=",
|
|
|
|
Notify => Svc["grafana-server"],
|
|
}
|
|
|
|
file "/etc/grafana/grafana.ini" {
|
|
state => $const.res.file.state.exists,
|
|
content => golang.template(deploy.readfile("/files/grafana.ini.tmpl")),
|
|
owner => "root",
|
|
group => "grafana",
|
|
mode => "u=rw,g=r,o=",
|
|
|
|
Notify => Svc["grafana-server"],
|
|
}
|
|
|
|
file "/etc/grafana/provisioning/" {
|
|
state => $const.res.file.state.exists,
|
|
#recurse => true,
|
|
#purge => true,
|
|
owner => "root",
|
|
group => "grafana",
|
|
mode => "u=rwx,g=rx,o=", # dir
|
|
}
|
|
|
|
|
|
svc "grafana-server" {
|
|
state => "running",
|
|
startup => "enabled",
|
|
}
|
|
}
|
|
|
|
class server:prometheus_base() {
|
|
|
|
file "/etc/grafana/provisioning/datasources/" {
|
|
state => $const.res.file.state.exists,
|
|
recurse => true,
|
|
purge => true,
|
|
owner => "root",
|
|
group => "grafana",
|
|
mode => "u=rwx,g=rx,o=", # dir
|
|
}
|
|
}
|
|
|
|
# XXX: if selinux is enabled, this wasn't connecting!
|
|
class server:prometheus($name, $st) {
|
|
include prometheus_base
|
|
|
|
$url = $st->url || "http://localhost:9090"
|
|
$comment = $st->comment || ""
|
|
|
|
$tmpl = struct{
|
|
name => "${name}",
|
|
url => "${url}",
|
|
comment => "${comment}",
|
|
}
|
|
file "/etc/grafana/provisioning/datasources/${name}.yaml" {
|
|
state => $const.res.file.state.exists,
|
|
content => golang.template(deploy.readfile("/files/prometheus.yaml.tmpl"), $tmpl),
|
|
owner => "root",
|
|
group => "grafana",
|
|
mode => "u=rw,g=r,o=",
|
|
}
|
|
}
|