Puppet Class: beats::install::debian::filebeat

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

Summary

Install and manage filebeat 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/filebeat.pp', line 3

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

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

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

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

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

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

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

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