Puppet Class: otelcol::service

Defined in:
manifests/service.pp

Summary

Manages the Otelcol service

Overview

Examples:

Make sure Otelcol is running

include 'otelcol::service'

Disable otelcol service

class { 'otelcol::service':
  ensure => stopped,
}

Parameters:

  • ensure (Stdlib::Ensure::Service) (defaults to: $otelcol::service_ensure)

    Ensure service status

  • enable (Boolean) (defaults to: $otelcol::service_enable)

    Enable service on boot

  • config_check_command (String) (defaults to: "${otelcol::service_name} validate --config=${otelcol::config_file}")
  • config_check (Boolean) (defaults to: $otelcol::service_configcheck)


18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'manifests/service.pp', line 18

class otelcol::service (
  Stdlib::Ensure::Service $ensure            = $otelcol::service_ensure,
  Boolean $enable                            = $otelcol::service_enable,
  String  $config_check_command              = "${otelcol::service_name} validate --config=${otelcol::config_file}",
  Boolean $config_check                      = $otelcol::service_configcheck,
) {
  # include install
  include otelcol::install

  if $config_check {
    exec { 'otelcol_config_check':
      command     => $config_check_command,
      refreshonly => true,
      path        => [
        '/usr/local/sbin',
        '/usr/local/bin',
        '/usr/sbin',
        '/usr/bin',
        '/sbin',
        '/bin',
      ],
    }
  }

  $service_require = $config_check ? {
    true => [Exec['otelcol_config_check'], Package['otelcol']],
    false => Package['otelcol'],
  }

  service { 'otelcol':
    ensure    => $ensure,
    enable    => $enable,
    name      => $otelcol::service_name,
    require   => $service_require,
    subscribe => [Concat['otelcol-config'], File['otelcol-environment']],
  }
}