add code
This commit is contained in:
parent
bd008c7ca3
commit
cac298d490
2 changed files with 79 additions and 0 deletions
69
manifests/init.pp
Normal file
69
manifests/init.pp
Normal file
|
@ -0,0 +1,69 @@
|
|||
# Class Grafana
|
||||
class grafana (
|
||||
$container_name = 'grafana',
|
||||
$container_image_name = 'grafana/grafana-oss',
|
||||
$container_image_version = 'latest',
|
||||
$container_mount_data_folder = true,
|
||||
$container_data_folder = '/var/lib/grafana',
|
||||
$container_config_folder = '/etc/grafana',
|
||||
$container_logs_folder = '/var/log/grafana',
|
||||
$container_volume_name = 'grafana-storage',
|
||||
$container_port = '3000',
|
||||
$configuration = {}, # Refer to https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/
|
||||
) {
|
||||
if (!$container_mount_data_folder) {
|
||||
podman::volume{$container_volume_name:}
|
||||
$flags = {
|
||||
publish => [
|
||||
"${container_port}:3000",
|
||||
],
|
||||
volume => [
|
||||
"${container_volume_name}:/var/lib/grafana",
|
||||
],
|
||||
}
|
||||
} else {
|
||||
file {$container_data_folder:
|
||||
ensure => directory,
|
||||
}
|
||||
file {$container_logs_folder:
|
||||
ensure => directory,
|
||||
}
|
||||
file {$container_config_folder:
|
||||
ensure => directory,
|
||||
}
|
||||
$flags = {
|
||||
publish => [
|
||||
"${container_port}:3000",
|
||||
],
|
||||
volume => [
|
||||
"${container_data_folder}:/var/lib/grafana",
|
||||
"${container_config_folder}:/etc/grafana",
|
||||
"${container_logs_folder}:/var/log/grafana",
|
||||
],
|
||||
}
|
||||
file { "${container_config_folder}/grafana.ini":
|
||||
ensure => present,
|
||||
content => template('grafana/grafana.ini.erb'),
|
||||
}
|
||||
}
|
||||
$env = [
|
||||
"GF_PATHS_CONFIG=${container_config_folder}/grafana.ini",
|
||||
"GF_PATHS_DATA=${$container_data_folder}",
|
||||
'GF_PATHS_HOME=/usr/share/grafana',
|
||||
"GF_PATHS_LOGS=${container_logs_folder}",
|
||||
"GF_PATHS_PLUGINS=${container_data_folder}/plugins",
|
||||
"GF_PATHS_PROVISIONING=${container_config_folder}/provisioning",
|
||||
'GF_LOG_MODE=console file',
|
||||
]
|
||||
podman::image { $container_name:
|
||||
image => $container_image_name,
|
||||
exec_env => $env,
|
||||
}
|
||||
podman::container { $container_name:
|
||||
image => "local/${container_name}",
|
||||
flags => $flags,
|
||||
service_flags => {
|
||||
timeout => '180'
|
||||
},
|
||||
}
|
||||
}
|
10
templates/grafana.ini.erb
Normal file
10
templates/grafana.ini.erb
Normal file
|
@ -0,0 +1,10 @@
|
|||
<% @configuration.each_pair do |section, options| -%>
|
||||
|
||||
[<%= section %>]
|
||||
<% @options.each_pair do |option, value| -%>
|
||||
<%= option %> = <%= value %>
|
||||
<% end -%>
|
||||
|
||||
<% end -%>
|
||||
|
||||
?>
|
Loading…
Reference in a new issue