Add code
This commit is contained in:
parent
d074b8b65c
commit
efc01912b7
2 changed files with 79 additions and 0 deletions
74
manifests/init.pp
Normal file
74
manifests/init.pp
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Class Prometheus
|
||||
class prometheus (
|
||||
$admin_password,
|
||||
$system_user = 'prometheus',
|
||||
$container_name = 'prometheeus',
|
||||
$container_image_name = 'prom/prometheus',
|
||||
$container_image_version = 'latest',
|
||||
$container_mount_data_folder = true,
|
||||
$container_data_folder = '/var/lib/prometheus',
|
||||
$container_config_folder = '/etc/prometheus',
|
||||
$container_logs_folder = '/var/log/prometheus',
|
||||
$container_volume_name = 'prometheus-storage',
|
||||
$container_port = '9090',
|
||||
$configuration = {}, # Refer to https://prometheus.io/docs/prometheus/latest/configuration/configuration/
|
||||
) {
|
||||
$env = [
|
||||
]
|
||||
if (!$container_mount_data_folder) {
|
||||
podman::volume { $container_volume_name: }
|
||||
$flags = {
|
||||
publish => [
|
||||
"${container_port}:9090",
|
||||
],
|
||||
sysctl => 'net.ipv6.conf.all.disable_ipv6=1',
|
||||
volume => [
|
||||
"${container_volume_name}:/var/lib/prometheus",
|
||||
],
|
||||
env => $env,
|
||||
}
|
||||
} else {
|
||||
user { $system_user:
|
||||
uid => 473,
|
||||
}
|
||||
file { $container_data_folder:
|
||||
ensure => directory,
|
||||
owner => $system_user,
|
||||
}
|
||||
file { "${container_data_folder}/plugins":
|
||||
ensure => directory,
|
||||
owner => $system_user,
|
||||
require => File[$container_data_folder],
|
||||
}
|
||||
file { $container_logs_folder:
|
||||
ensure => directory,
|
||||
owner => $system_user,
|
||||
}
|
||||
file { $container_config_folder:
|
||||
ensure => directory,
|
||||
owner => $system_user,
|
||||
}
|
||||
$flags = {
|
||||
publish => [
|
||||
"${container_port}:9090",
|
||||
],
|
||||
sysctl => 'net.ipv6.conf.all.disable_ipv6=1',
|
||||
volume => [
|
||||
"${container_data_folder}:/var/lib/prometheus",
|
||||
"${container_config_folder}:/etc/prometheus",
|
||||
"${container_logs_folder}:/var/log/prometheus",
|
||||
],
|
||||
env => $env,
|
||||
}
|
||||
file { "${container_config_folder}/prometheus.yml":
|
||||
content => template('prometheus/prometheus.yml.erb'),
|
||||
}
|
||||
}
|
||||
podman::container { $container_name:
|
||||
image => $container_image_name,
|
||||
flags => $flags,
|
||||
service_flags => {
|
||||
timeout => '180',
|
||||
},
|
||||
}
|
||||
}
|
5
templates/prometheus.yml.erb
Normal file
5
templates/prometheus.yml.erb
Normal file
|
@ -0,0 +1,5 @@
|
|||
<% require 'yaml' -%>
|
||||
<%= if @configuration
|
||||
configuration.to_yaml().gsub(/source_labels: ".+?"/) { |x| x.gsub('"', '') }
|
||||
end
|
||||
-%>
|
Loading…
Reference in a new issue