Skip to content

Commit

Permalink
Fix Arch Linux Prometheus Server installation
Browse files Browse the repository at this point in the history
  • Loading branch information
bastelfreak committed Aug 12, 2023
1 parent 3ba0d85 commit 4e7b779
Show file tree
Hide file tree
Showing 7 changed files with 175 additions and 98 deletions.
54 changes: 54 additions & 0 deletions REFERENCE.md
Expand Up @@ -174,7 +174,10 @@ The following parameters are available in the `prometheus` class:
* [`proxy_server`](#-prometheus--proxy_server)
* [`proxy_type`](#-prometheus--proxy_type)
* [`env_file_path`](#-prometheus--env_file_path)
* [`manage_config_dir`](#-prometheus--manage_config_dir)
* [`manage_init_file`](#-prometheus--manage_init_file)
* [`manage_config`](#-prometheus--manage_config)
* [`manage_localstorage`](#-prometheus--manage_localstorage)
* [`manage_prometheus_server`](#-prometheus--manage_prometheus_server)

##### <a name="-prometheus--configname"></a>`configname`
Expand Down Expand Up @@ -903,12 +906,36 @@ Data type: `Stdlib::Absolutepath`



##### <a name="-prometheus--manage_config_dir"></a>`manage_config_dir`

Data type: `Boolean`



Default value: `true`

##### <a name="-prometheus--manage_init_file"></a>`manage_init_file`

Data type: `Boolean`



Default value: `true`

##### <a name="-prometheus--manage_config"></a>`manage_config`

Data type: `Boolean`



Default value: `true`

##### <a name="-prometheus--manage_localstorage"></a>`manage_localstorage`

Data type: `Boolean`



Default value: `true`

##### <a name="-prometheus--manage_prometheus_server"></a>`manage_prometheus_server`
Expand Down Expand Up @@ -11621,7 +11648,9 @@ The following parameters are available in the `prometheus::server` class:
* [`package_name`](#-prometheus--server--package_name)
* [`package_ensure`](#-prometheus--server--package_ensure)
* [`config_dir`](#-prometheus--server--config_dir)
* [`manage_config_dir`](#-prometheus--server--manage_config_dir)
* [`localstorage`](#-prometheus--server--localstorage)
* [`manage_localstorage`](#-prometheus--server--manage_localstorage)
* [`config_template`](#-prometheus--server--config_template)
* [`config_mode`](#-prometheus--server--config_mode)
* [`global_config`](#-prometheus--server--global_config)
Expand Down Expand Up @@ -11659,6 +11688,7 @@ The following parameters are available in the `prometheus::server` class:
* [`usershell`](#-prometheus--server--usershell)
* [`proxy_server`](#-prometheus--server--proxy_server)
* [`proxy_type`](#-prometheus--server--proxy_type)
* [`manage_init_file`](#-prometheus--server--manage_init_file)

##### <a name="-prometheus--server--configname"></a>`configname`

Expand Down Expand Up @@ -11764,6 +11794,14 @@ Data type: `String`

Default value: `$prometheus::config_dir`

##### <a name="-prometheus--server--manage_config_dir"></a>`manage_config_dir`

Data type: `Boolean`



Default value: `$prometheus::manage_config_dir`

##### <a name="-prometheus--server--localstorage"></a>`localstorage`

Data type: `Variant[Stdlib::Absolutepath, Boolean[false]]`
Expand All @@ -11772,6 +11810,14 @@ Data type: `Variant[Stdlib::Absolutepath, Boolean[false]]`

Default value: `$prometheus::localstorage`

##### <a name="-prometheus--server--manage_localstorage"></a>`manage_localstorage`

Data type: `Boolean`



Default value: `$prometheus::manage_localstorage`

##### <a name="-prometheus--server--config_template"></a>`config_template`

Data type: `String`
Expand Down Expand Up @@ -12068,6 +12114,14 @@ Data type: `Optional[Enum['none', 'http', 'https', 'ftp']]`

Default value: `$prometheus::proxy_type`

##### <a name="-prometheus--server--manage_init_file"></a>`manage_init_file`

Data type: `Boolean`



Default value: `$prometheus::manage_init_file`

### <a name="prometheus--snmp_exporter"></a>`prometheus::snmp_exporter`

This module manages prometheus snmp_exporter
Expand Down
9 changes: 7 additions & 2 deletions data/Archlinux.yaml
@@ -1,7 +1,12 @@
---
prometheus::manage_localstorage: false
prometheus::server::manage_user: false
prometheus::server::manage_group: false
prometheus::server::package_ensure: 'installed'
prometheus::server::manage_config_dir: false
prometheus::server::manage_init_file: false
prometheus::configname: 'prometheus.yml'
prometheus::server::init_style: 'none'
prometheus::version: '2.10.0'
prometheus::version: '2.46.0'
prometheus::install_method: 'package'
prometheus::bin_dir: '/usr/bin'
prometheus::env_file_path: '/etc/conf.d'
Expand Down
106 changes: 54 additions & 52 deletions manifests/config.pp
Expand Up @@ -189,63 +189,65 @@
}
}

case $prometheus::server::init_style { # lint:ignore:case_without_default
'upstart': {
file { '/etc/init/prometheus.conf':
ensure => file,
mode => '0444',
owner => 'root',
group => 'root',
content => template('prometheus/prometheus.upstart.erb'),
notify => $notify,
if $prometheus::server::manage_init_file {
case $prometheus::server::init_style {
'upstart': {
file { '/etc/init/prometheus.conf':
ensure => file,
mode => '0444',
owner => 'root',
group => 'root',
content => template('prometheus/prometheus.upstart.erb'),
notify => $notify,
}
file { '/etc/init.d/prometheus':
ensure => link,
target => '/lib/init/upstart-job',
owner => 'root',
group => 'root',
mode => '0755',
notify => $notify,
}
}
file { '/etc/init.d/prometheus':
ensure => link,
target => '/lib/init/upstart-job',
owner => 'root',
group => 'root',
mode => '0755',
notify => $notify,
'systemd': {
systemd::unit_file { 'prometheus.service':
content => epp("${module_name}/prometheus.systemd.epp", {
'user' => $prometheus::server::user,
'group' => $prometheus::server::group,
'daemon_flags' => $daemon_flags,
'max_open_files' => $max_open_files,
'bin_dir' => $prometheus::server::bin_dir,
}),
notify => $notify,
}
if versioncmp($facts['puppetversion'],'6.1.0') < 0 {
# Puppet 5 doesn't have https://tickets.puppetlabs.com/browse/PUP-3483
# and camptocamp/systemd only creates this relationship when managing the service
Class['systemd::systemctl::daemon_reload'] -> Class['prometheus::run_service']
}
}
}
'systemd': {
systemd::unit_file { 'prometheus.service':
content => epp("${module_name}/prometheus.systemd.epp", {
'user' => $prometheus::server::user,
'group' => $prometheus::server::group,
'daemon_flags' => $daemon_flags,
'max_open_files' => $max_open_files,
'bin_dir' => $prometheus::server::bin_dir,
}),
notify => $notify,
}
if versioncmp($facts['puppetversion'],'6.1.0') < 0 {
# Puppet 5 doesn't have https://tickets.puppetlabs.com/browse/PUP-3483
# and camptocamp/systemd only creates this relationship when managing the service
Class['systemd::systemctl::daemon_reload'] -> Class['prometheus::run_service']
'sysv', 'sles': {
file { "/etc/init.d/${prometheus::server::service_name}":
ensure => file,
mode => '0555',
owner => 'root',
group => 'root',
content => template("prometheus/prometheus.${prometheus::server::init_style}.erb"),
notify => $notify,
}
}
}
'sysv', 'sles': {
file { "/etc/init.d/${prometheus::server::service_name}":
ensure => file,
mode => '0555',
owner => 'root',
group => 'root',
content => template("prometheus/prometheus.${prometheus::server::init_style}.erb"),
notify => $notify,
}
}
'launchd': {
file { '/Library/LaunchDaemons/io.prometheus.daemon.plist':
ensure => file,
mode => '0644',
owner => 'root',
group => 'wheel',
content => template('prometheus/prometheus.launchd.erb'),
notify => $notify,
'launchd': {
file { '/Library/LaunchDaemons/io.prometheus.daemon.plist':
ensure => file,
mode => '0644',
owner => 'root',
group => 'wheel',
content => template('prometheus/prometheus.launchd.erb'),
notify => $notify,
}
}
default, 'none': {}
}
'none': {}
}

# TODO: promtool currently does not support checking the syntax of file_sd_config "includes".
Expand Down
3 changes: 3 additions & 0 deletions manifests/init.pp
Expand Up @@ -240,10 +240,13 @@
String $config_template = 'prometheus/prometheus.yaml.erb',
String $config_mode = '0640',
String $config_dir = '/etc/prometheus',
Boolean $manage_config_dir = true,
Boolean $manage_init_file = true,
Variant[Array,Hash] $alerts = {},
Boolean $manage_config = true,
String $group = 'prometheus',
Stdlib::Absolutepath $localstorage = '/var/lib/prometheus',
Boolean $manage_localstorage = true,
Stdlib::Absolutepath $bin_dir = '/usr/local/bin',
String $version = '2.30.3',
String $install_method = 'url',
Expand Down
21 changes: 12 additions & 9 deletions manifests/install.pp
Expand Up @@ -6,7 +6,7 @@
class prometheus::install {
assert_private()

if $prometheus::server::localstorage {
if $prometheus::server::localstorage and $prometheus::server::manage_localstorage {
file { $prometheus::server::localstorage:
ensure => 'directory',
owner => $prometheus::server::user,
Expand Down Expand Up @@ -59,6 +59,7 @@
package { $prometheus::server::package_name:
ensure => $prometheus::server::package_ensure,
notify => $prometheus::server::notify_service,
before => File["${prometheus::server::config_dir}/rules"],
}
if $prometheus::server::manage_user {
User[$prometheus::server::user] -> Package[$prometheus::server::package_name]
Expand Down Expand Up @@ -87,13 +88,15 @@
system => true,
})
}
file { $prometheus::server::config_dir:
ensure => 'directory',
owner => 'root',
group => $prometheus::server::group,
mode => $prometheus::server::config_mode,
purge => $prometheus::server::purge_config_dir,
recurse => $prometheus::server::purge_config_dir,
force => $prometheus::server::purge_config_dir,
if $prometheus::server::manage_config_dir {
file { $prometheus::server::config_dir:
ensure => 'directory',
owner => 'root',
group => $prometheus::server::group,
mode => $prometheus::server::config_mode,
purge => $prometheus::server::purge_config_dir,
recurse => $prometheus::server::purge_config_dir,
force => $prometheus::server::purge_config_dir,
}
}
}
3 changes: 3 additions & 0 deletions manifests/server.pp
Expand Up @@ -13,7 +13,9 @@
String $package_name = $prometheus::package_name,
String $package_ensure = $prometheus::package_ensure,
String $config_dir = $prometheus::config_dir,
Boolean $manage_config_dir = $prometheus::manage_config_dir,
Variant[Stdlib::Absolutepath, Boolean[false]] $localstorage = $prometheus::localstorage,
Boolean $manage_localstorage = $prometheus::manage_localstorage,
String $config_template = $prometheus::config_template,
String $config_mode = $prometheus::config_mode,
Hash $global_config = $prometheus::global_config,
Expand Down Expand Up @@ -51,6 +53,7 @@
Stdlib::Absolutepath $usershell = $prometheus::usershell,
Optional[String[1]] $proxy_server = $prometheus::proxy_server,
Optional[Enum['none', 'http', 'https', 'ftp']] $proxy_type = $prometheus::proxy_type,
Boolean $manage_init_file = $prometheus::manage_init_file,
) inherits prometheus {
if( versioncmp($version, '1.0.0') == -1 ) {
$real_download_url = pick($download_url,
Expand Down

0 comments on commit 4e7b779

Please sign in to comment.