Puppet Class: kibana::install

Defined in:
manifests/install.pp

Overview

Class: kibana::install

This class installs kibana. It should not be directly called.

Parameters:

  • version (Any) (defaults to: $::kibana::version)
  • base_url (Any) (defaults to: $::kibana::base_url)
  • tmp_dir (Any) (defaults to: $::kibana::tmp_dir)
  • install_path (Any) (defaults to: $::kibana::install_path)
  • group (Any) (defaults to: $::kibana::group)
  • user (Any) (defaults to: $::kibana::user)


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
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
# File 'manifests/install.pp', line 6

class kibana::install (
  $version             = $::kibana::version,
  $base_url            = $::kibana::base_url,
  $tmp_dir             = $::kibana::tmp_dir,
  $install_path        = $::kibana::install_path,
  $group               = $::kibana::group,
  $user                = $::kibana::user,
) {

  $filename = $::architecture ? {
    /(i386|x86$)/    => "kibana-${version}-linux-x86",
    /(amd64|x86_64)/ => "kibana-${version}-linux-x64",
  }

  $service_provider = $::kibana::params::service_provider
  $run_path         = $::kibana::params::run_path

  group { $group:
    ensure => 'present',
    system => true,
  }

  user { $user:
    ensure  => 'present',
    system  => true,
    gid     => $group,
    home    => $install_path,
    require => Group[$group],
  }

  wget::fetch { 'kibana':
    source      => "${base_url}/${filename}.tar.gz",
    destination => "${tmp_dir}/${filename}.tar.gz",
    require     => User[$user],
    unless      => "test -e ${install_path}/${filename}/LICENSE.txt",
  }

  exec { 'extract_kibana':
    command => "tar -xzf ${tmp_dir}/${filename}.tar.gz -C ${install_path}",
    path    => ['/bin', '/sbin'],
    creates => "${install_path}/${filename}",
    notify  => Exec['ensure_correct_permissions'],
    require => Wget::Fetch['kibana'],
  }

  exec { 'ensure_correct_permissions':
    command     => "chown -R ${user}:${group} ${install_path}/${filename}",
    path        => ['/bin', '/sbin'],
    refreshonly => true,
    require     => [
        Exec['extract_kibana'],
        User[$user],
    ],
  }

  file { "${install_path}/kibana":
    ensure  => 'link',
    target  => "${install_path}/${filename}",
    require => Exec['extract_kibana'],
  }

  file { "${install_path}/kibana/installedPlugins":
    ensure  => directory,
    owner   => kibana,
    group   => kibana,
    require => User['kibana'],
  }

  file { '/var/log/kibana':
    ensure  => directory,
    owner   => kibana,
    group   => kibana,
    require => User['kibana'],
  }

  if $service_provider == 'init' {

    file { 'kibana-init-script':
      ensure  => file,
      path    => '/etc/init.d/kibana',
      content => template('kibana/kibana.legacy.service.lsbheader.erb', "kibana/${::kibana::params::init_script_osdependend}", 'kibana/kibana.legacy.service.maincontent.erb'),
      mode    => '0755',
      notify  => Class['::kibana::service'],
    }

  }

  if $service_provider == 'systemd' {

    file { 'kibana-init-script':
      ensure  => file,
      path    => "${::kibana::params::systemd_provider_path}/kibana.service",
      content => template('kibana/kibana.service.erb'),
      notify  => Class['::kibana::service'],
    }

    file { 'kibana-run-dir':
      ensure => directory,
      path   => $run_path,
      owner  => $user,
      group  => $group,
      notify => Class['::kibana::service'],
    }

    file { 'kibana-tmpdir-d-conf':
      ensure  => file,
      path    => '/etc/tmpfiles.d/kibana.conf',
      owner   => root,
      group   => root,
      content => template('kibana/kibana.tmpfiles.d.conf.erb'),
    }
  }

}