Puppet Class: solr::config

Defined in:
manifests/config.pp

Summary

Setup and configure Solr.

Overview



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

class solr::config {
  assert_private()

  # From version 7.4.0 onwards, SOLR uses log4j2.
  if (versioncmp($solr::version, '7.4.0') < 0) {
    $log4jconfig = 'log4j.properties'
    file { "${solr::extract_dir}/solr-${solr::version}/server/resources/${log4jconfig}":
      ensure  => file,
      mode    => '0644',
      owner   => $solr::solr_user,
      group   => $solr::solr_user,
      content => template("solr/${log4jconfig}.erb"),
      notify  => Service[$solr::service_name],
    }
    file { "${solr::var_dir}/${log4jconfig}":
      ensure  => file,
      mode    => '0644',
      owner   => $solr::solr_user,
      group   => $solr::solr_user,
      content => template("solr/${log4jconfig}.erb"),
      notify  => Service[$solr::service_name],
    }
  } else {
    $log4jconfig = 'log4j2.xml'
    file { "${solr::extract_dir}/solr-${solr::version}/server/resources/${log4jconfig}":
      ensure  => file,
      mode    => '0644',
      owner   => $solr::solr_user,
      group   => $solr::solr_user,
      content => epp("solr/${log4jconfig}.epp", {
          'enable_syslog'   => $solr::enable_syslog,
          'syslog_host'     => $solr::syslog_host,
          'syslog_port'     => $solr::syslog_port,
          'syslog_protocol' => $solr::syslog_protocol,
          'syslog_app_name' => $solr::syslog_app_name,
          'syslog_facility' => $solr::syslog_facility,
      }),
      notify  => Service[$solr::service_name],
    }
    file { "${solr::var_dir}/${log4jconfig}":
      ensure  => file,
      mode    => '0644',
      owner   => $solr::solr_user,
      group   => $solr::solr_user,
      content => epp("solr/${log4jconfig}.epp", {
          'enable_syslog'   => $solr::enable_syslog,
          'syslog_host'     => $solr::syslog_host,
          'syslog_port'     => $solr::syslog_port,
          'syslog_protocol' => $solr::syslog_protocol,
          'syslog_app_name' => $solr::syslog_app_name,
          'syslog_facility' => $solr::syslog_facility,
      }),
      notify  => Service[$solr::service_name],
    }
  }

  # When storing data outside the default paths, allowPaths must be used.
  if $solr::manage_allow_paths {
    # Add basic Solr paths.
    $paths_tmp1 = [$solr::solr_home, $solr::var_dir]

    # Merge with custom paths.
    $paths_tmp2 = union($solr::allow_paths, $paths_tmp1)

    # Generate a comma separated list.
    $paths_tmp3 = join($paths_tmp2, ',')

    # Add allowPaths to Solr options.
    $solr_opts_tmp = union($solr::solr_opts, ["-Dsolr.allowPaths=${$paths_tmp3}"])
  } else {
    $solr_opts_tmp = $solr::solr_opts
  }

  # When managing custom plugins, add the required startup option.
  if ($solr::manage_custom_plugins and !empty($solr::custom_plugins)) {
    $solr_opts = union($solr_opts_tmp, ["-D${solr::custom_plugins_id}=${solr::custom_plugins_dir}"])
  } else {
    # When not managing custom plugins, pass options unmodified.
    $solr_opts = $solr_opts_tmp
  }

  file { "${solr::var_dir}/solr.in.sh":
    ensure  => file,
    mode    => '0755',
    owner   => $solr::solr_user,
    group   => $solr::solr_user,
    content => epp('solr/solr.in.sh.epp'),
    notify  => Service[$solr::service_name],
  }
  file { "/etc/init.d/${solr::service_name}":
    ensure  => file,
    mode    => '0744',
    content => template('solr/solr.init.erb'),
  }
}