]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/elasticsearch/manifests/config.pp
Revert "Revert "upgrade to elasticsearch/elasticsearch 0.9.6""
[dsa-puppet.git] / 3rdparty / modules / elasticsearch / manifests / config.pp
1 # == Class: elasticsearch::config
2 #
3 # This class exists to coordinate all configuration related actions,
4 # functionality and logical units in a central place.
5 #
6 #
7 # === Parameters
8 #
9 # This class does not provide any parameters.
10 #
11 #
12 # === Examples
13 #
14 # This class may be imported by other classes to use its functionality:
15 #   class { 'elasticsearch::config': }
16 #
17 # It is not intended to be used directly by external resources like node
18 # definitions or other modules.
19 #
20 #
21 # === Authors
22 #
23 # * Richard Pijnenburg <mailto:richard.pijnenburg@elasticsearch.com>
24 #
25 class elasticsearch::config {
26
27   #### Configuration
28
29   File {
30     owner => $elasticsearch::elasticsearch_user,
31     group => $elasticsearch::elasticsearch_group,
32   }
33
34   Exec {
35     path => [ '/bin', '/usr/bin', '/usr/local/bin' ],
36     cwd  => '/',
37   }
38
39   if ( $elasticsearch::ensure == 'present' ) {
40
41     $notify_service = $elasticsearch::restart_on_change ? {
42       true  => Class['elasticsearch::service'],
43       false => undef,
44     }
45
46     file { $elasticsearch::configdir:
47       ensure => directory,
48       mode   => '0644',
49     }
50
51     file { $elasticsearch::params::logdir:
52       ensure  => 'directory',
53       group   => undef,
54       mode    => '0644',
55       recurse => true,
56     }
57
58     file { $elasticsearch::params::homedir:
59       ensure  => 'directory',
60     }
61
62     file { "${elasticsearch::params::homedir}/bin":
63       ensure  => 'directory',
64       recurse => true,
65       mode    => '0755',
66     }
67
68     file { $elasticsearch::plugindir:
69       ensure  => 'directory',
70       recurse => true,
71     }
72
73     file { $elasticsearch::datadir:
74       ensure  => 'directory',
75     }
76
77     file { "${elasticsearch::homedir}/lib":
78       ensure  => 'directory',
79       recurse => true,
80     }
81
82     if $elasticsearch::params::pid_dir {
83       file { $elasticsearch::params::pid_dir:
84         ensure  => 'directory',
85         group   => undef,
86         recurse => true,
87       }
88     }
89
90     exec { 'mkdir_templates_elasticsearch':
91       command => "mkdir -p ${elasticsearch::configdir}/templates_import",
92       creates => "${elasticsearch::configdir}/templates_import",
93     }
94
95     file { "${elasticsearch::configdir}/templates_import":
96       ensure  => 'directory',
97       mode    => '0644',
98       require => [ Exec['mkdir_templates_elasticsearch'] ],
99     }
100
101     file { "${elasticsearch::configdir}/scripts":
102       ensure => 'directory',
103       mode   => '0644',
104     }
105
106     # Removal of files that are provided with the package which we don't use
107     file { '/etc/init.d/elasticsearch':
108       ensure => 'absent',
109     }
110     file { '/lib/systemd/system/elasticsearch.service':
111       ensure => 'absent',
112     }
113
114     file { "${elasticsearch::params::defaults_location}/elasticsearch":
115       ensure => 'absent',
116     }
117
118     file { '/etc/elasticsearch/elasticsearch.yml':
119       ensure => 'absent',
120     }
121     file { '/etc/elasticsearch/logging.yml':
122       ensure => 'absent',
123     }
124
125   } elsif ( $elasticsearch::ensure == 'absent' ) {
126     # don't remove anything for now
127   }
128
129 }