Puppet Class: beats::install::debian::metricbeat

Defined in:
manifests/install/debian/metricbeat.pp

Summary

Install and manage metricbeat service and configuration file on Debian

Overview



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
# File 'manifests/install/debian/metricbeat.pp', line 3

class beats::install::debian::metricbeat {
  assert_private("Use of private class ${name} by ${caller_module_name}")

  include beats::metricbeat
  include beats::config::metricbeat
  require beats::install::debian::remove_repo

  $uri = "https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-${beats::metricbeat::version}-${
  beats::metricbeat::arch}.deb"
  $deb = "/var/cache/apt/archives/metricbeat+puppet_${beats::metricbeat::arch}.deb"

  if $beats::metricbeat::checksum == 'auto' {
    $_checksum = beats::get_checksum($uri, 'metricbeat', $beats::metricbeat::version)
  } else {
    $_checksum = $beats::metricbeat::checksum
  }

  file { $deb:
    ensure         => 'file',
    source         => $uri,
    checksum       => 'sha512',
    checksum_value => $_checksum,
    owner          => 'root',
    group          => 'root',
    mode           => '0500',
  }

  package { 'metricbeat':
    ensure   => 'latest',
    provider => 'dpkg',
    source   => $deb,
    require  => File[$deb],
  }

  file { '/etc/metricbeat/metricbeat.yml':
    ensure  => 'file',
    content => to_yaml($beats::config::metricbeat::final),
    require => [
      Package['metricbeat'],
      Service['metricbeat.service'],
    ],
  }

  service { 'metricbeat.service':
    ensure  => $beats::metricbeat::service_ensure,
    enable  => $beats::metricbeat::service_atboot,
    require => [
      Package['metricbeat'],
    ],
  }
}