Puppet Class: elasticsearch::packages

Defined in:
modules/elasticsearch/manifests/packages.pp

Overview

Class: elasticsearch::packages

Provisions Elasticsearch package and dependencies.

Parameters:

  • package_name (String)
  • apt_component (String)
  • send_logs_to_logstash (Boolean)


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
# File 'modules/elasticsearch/manifests/packages.pp', line 5

class elasticsearch::packages (
    String $package_name,
    String $apt_component,
    Boolean $send_logs_to_logstash,
) {
    include ::java::tools

    # library for elasticsearch
    ensure_packages(['python3-elasticsearch'])

    apt::package_from_component { 'elasticsearch-oss':
        component => "component/${apt_component} thirdparty/${apt_component}",
    }

    ### install and link additional log4j appender to send logs over GELF

    # we only require the packages, we do not remove them as there might be
    # other dependencies
    if $send_logs_to_logstash {
        ensure_packages('liblogstash-gelf-java')
        ensure_packages('libjson-simple-java')
    }

    # symlinks are removed if log shipping is disabled
    file { '/usr/share/elasticsearch/lib/logstash-gelf.jar':
        ensure  => stdlib::ensure($send_logs_to_logstash, 'link'),
        target  => '/usr/share/java/logstash-gelf.jar',
        require => 'Package[elasticsearch-oss]',
    }
    file { '/usr/share/elasticsearch/lib/json-simple.jar':
        ensure  => stdlib::ensure($send_logs_to_logstash, 'link'),
        target  => '/usr/share/java/json-simple.jar',
        require => 'Package[elasticsearch-oss]',
    }

}