Puppet Class: prometheus::dellhw_exporter

Inherits:
prometheus
Defined in:
manifests/dellhw_exporter.pp

Summary

This module manages prometheus node dellhw_exporter

Overview

Parameters:

  • arch (String[1]) (defaults to: $prometheus::real_arch)

    Architecture (amd64 or i386)

  • bin_dir (Stdlib::Absolutepath) (defaults to: $prometheus::bin_dir)

    Directory where binaries are located

  • download_extension (String) (defaults to: 'tar.gz')

    Extension for the release binary archive

  • download_url (Optional[Prometheus::Uri]) (defaults to: undef)

    Complete URL corresponding to the where the release binary archive can be downloaded

  • download_url_base (Prometheus::Uri) (defaults to: 'https://github.com/galexrt/dellhw_exporter/releases')

    Base URL for the binary archive

  • extra_groups (Array[String]) (defaults to: [])

    Extra groups to add the binary user to

  • extra_options (String) (defaults to: '')

    Extra options added to the startup command

  • group (String[1]) (defaults to: 'dellhw-exporter')

    Group under which the binary is running

  • init_style (Prometheus::Initstyle) (defaults to: $facts['service_provider'])

    Service startup scripts style (e.g. rc, upstart or systemd)

  • install_method (Prometheus::Install) (defaults to: $prometheus::install_method)

    Installation method: url or package (only url is supported currently)

  • manage_group (Boolean) (defaults to: true)

    Whether to create a group for or rely on external code for that

  • manage_service (Boolean) (defaults to: true)

    Should puppet manage the service? (default true)

  • manage_user (Boolean) (defaults to: true)

    Whether to create user or rely on external code for that

  • os (String[1]) (defaults to: downcase($facts['kernel']))

    Operating system (linux is the only one supported)

  • package_ensure (String[1]) (defaults to: 'present')

    If package, then use this for package ensure default ‘latest’

  • package_name (String[1]) (defaults to: 'dellhw_exporter')

    The binary package name - not available yet

  • purge_config_dir (Boolean) (defaults to: true)

    Purge config files no longer generated by Puppet

  • restart_on_change (Boolean) (defaults to: true)

    Should puppet restart the service on configuration change? (default true)

  • service_enable (Boolean) (defaults to: true)

    Whether to enable the service from puppet (default true)

  • service_ensure (Stdlib::Ensure::Service) (defaults to: 'running')

    State ensured for the service (default ‘running’)

  • service_name (String[1]) (defaults to: 'dellhw_exporter')

    Name of the dellhw exporter service (default ‘dellhw_exporter’)

  • user (String[1]) (defaults to: 'dellhw-exporter')

    User which runs the service

  • version (String[1]) (defaults to: '1.6.0')

    The binary release version

  • omreport_path (Stdlib::Unixpath) (defaults to: '/opt/dell/srvadmin/bin/omreport')

    The file path to the omReport executable (default “/opt/dell/srvadmin/bin/omreport”)

  • scrape_ipadress (String) (defaults to: '')

    The ip address that the exporter will to listen to (default ”)

  • export_scrape_job (Boolean) (defaults to: false)
  • scrape_host (Optional[Stdlib::Host]) (defaults to: undef)
  • scrape_port (Stdlib::Port) (defaults to: 9137)
  • scrape_job_name (String[1]) (defaults to: 'dellhw')
  • scrape_job_labels (Optional[Hash]) (defaults to: undef)
  • bin_name (Optional[String[1]]) (defaults to: undef)


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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'manifests/dellhw_exporter.pp', line 52

class prometheus::dellhw_exporter (
  String $download_extension              = 'tar.gz',
  Prometheus::Uri $download_url_base      = 'https://github.com/galexrt/dellhw_exporter/releases',
  Array[String] $extra_groups             = [],
  String[1] $group                        = 'dellhw-exporter',
  String[1] $package_ensure               = 'present',
  String[1] $package_name                 = 'dellhw_exporter',
  String[1] $user                         = 'dellhw-exporter',
  String[1] $version                      = '1.6.0',
  Boolean $purge_config_dir               = true,
  Boolean $restart_on_change              = true,
  Boolean $service_enable                 = true,
  Stdlib::Ensure::Service $service_ensure = 'running',
  String[1] $service_name                 = 'dellhw_exporter',
  Prometheus::Initstyle $init_style       = $facts['service_provider'],
  Prometheus::Install $install_method     = $prometheus::install_method,
  Boolean $manage_group                   = true,
  Boolean $manage_service                 = true,
  Boolean $manage_user                    = true,
  String[1] $os                           = downcase($facts['kernel']),
  String $extra_options                   = '',
  Optional[Prometheus::Uri] $download_url = undef,
  String[1] $arch                         = $prometheus::real_arch,
  Stdlib::Absolutepath $bin_dir           = $prometheus::bin_dir,
  Boolean $export_scrape_job              = false,
  Optional[Stdlib::Host] $scrape_host     = undef,
  Stdlib::Port $scrape_port               = 9137,
  String $scrape_ipadress                 = '',
  String[1] $scrape_job_name              = 'dellhw',
  Optional[Hash] $scrape_job_labels       = undef,
  Optional[String[1]] $bin_name           = undef,
  Stdlib::Unixpath $omreport_path         = '/opt/dell/srvadmin/bin/omreport',
) inherits prometheus {
  $real_download_url = pick($download_url,"${download_url_base}/download/v${version}/dellhw_exporter-${version}.${os}-${arch}.${download_extension}")

  $notify_service = $restart_on_change ? {
    true    => Service[$service_name],
    default => undef,
  }

  $real_omreport_path = "--collectors-omreport=${omreport_path}"
  $real_scrape_port = "--web-listen-address=${$scrape_ipadress}:${scrape_port}"
  $options = join([$extra_options, $real_omreport_path, $real_scrape_port], ' ')

  prometheus::daemon { $service_name:
    install_method     => $install_method,
    version            => $version,
    download_extension => $download_extension,
    os                 => $os,
    arch               => $arch,
    real_download_url  => $real_download_url,
    bin_dir            => $bin_dir,
    notify_service     => $notify_service,
    package_name       => $package_name,
    package_ensure     => $package_ensure,
    manage_user        => $manage_user,
    user               => $user,
    extra_groups       => $extra_groups,
    group              => $group,
    manage_group       => $manage_group,
    purge              => $purge_config_dir,
    options            => $options,
    init_style         => $init_style,
    service_ensure     => $service_ensure,
    service_enable     => $service_enable,
    manage_service     => $manage_service,
    export_scrape_job  => $export_scrape_job,
    scrape_host        => $scrape_host,
    scrape_port        => $scrape_port,
    scrape_job_name    => $scrape_job_name,
    scrape_job_labels  => $scrape_job_labels,
    bin_name           => $bin_name,
    archive_bin_path   => "/opt/dellhw_exporter-${version}.${os}-${arch}/dellhw_exporter",
  }
}