Initial version of solr module
This commit is contained in:
parent
317780be0f
commit
0630f22306
7 changed files with 321 additions and 0 deletions
182
solr/manifests/init.pp
Normal file
182
solr/manifests/init.pp
Normal file
|
@ -0,0 +1,182 @@
|
|||
# Install Apache Solr.
|
||||
#
|
||||
class solr {
|
||||
|
||||
if !$solr_package {
|
||||
if $solr_package_latest {
|
||||
$solr_package = $solr_package_latest
|
||||
} else {
|
||||
fail("Must define \$solr_package or \$solr_package_latest")
|
||||
}
|
||||
}
|
||||
|
||||
if !$solr_core {
|
||||
fail("Must define \$solr_core")
|
||||
}
|
||||
|
||||
file { "/usr/local/src/solr.tgz":
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
source => "puppet:///files/packages/${solr_package}"
|
||||
}
|
||||
|
||||
util::extract::tar { "/usr/local/share/solr":
|
||||
ensure => latest,
|
||||
strip => 1,
|
||||
source => "/usr/local/src/solr.tgz",
|
||||
require => File['/usr/local/src/solr.tgz'],
|
||||
}
|
||||
|
||||
include user::system
|
||||
realize(User["solr"], Group["solr"])
|
||||
|
||||
if $solr_datadir {
|
||||
file { $solr_datadir:
|
||||
ensure => directory,
|
||||
mode => "0770",
|
||||
owner => "solr",
|
||||
group => "solr",
|
||||
require => User["solr"],
|
||||
}
|
||||
|
||||
file { "/srv/solr":
|
||||
ensure => link,
|
||||
target => $solr_datadir,
|
||||
require => File[$solr_datadir],
|
||||
}
|
||||
} else {
|
||||
file { "/srv/solr":
|
||||
ensure => directory,
|
||||
mode => "0770",
|
||||
owner => "solr",
|
||||
group => "solr",
|
||||
require => User["solr"],
|
||||
}
|
||||
}
|
||||
|
||||
file { [ "/srv/solr/cores",
|
||||
"/srv/solr/cores/lib",
|
||||
"/srv/solr/index",
|
||||
"/srv/solr/run",
|
||||
"/srv/solr/run/solr-webapp",
|
||||
"/srv/solr/spool", ]:
|
||||
ensure => directory,
|
||||
mode => "0770",
|
||||
owner => "solr",
|
||||
group => "solr",
|
||||
require => File["/srv/solr"],
|
||||
}
|
||||
|
||||
file { "/srv/solr/cores/solr.xml"
|
||||
ensure => present,
|
||||
mode => "0660",
|
||||
owner => "solr",
|
||||
group => "solr",
|
||||
content => template("solr/solr.xml.erb"),
|
||||
require => File["/srv/solr/cores"],
|
||||
}
|
||||
|
||||
file { "/srv/solr/run/start.jar":
|
||||
ensure => link,
|
||||
target => "/usr/local/share/solr/example/start.jar"
|
||||
require => File["/srv/solr/run"],
|
||||
}
|
||||
file { "/srv/solr/run/contexts":
|
||||
ensure => link,
|
||||
target => "/usr/local/share/solr/example/contexts"
|
||||
require => File["/srv/solr/run"],
|
||||
}
|
||||
file { "/srv/solr/run/etc":
|
||||
ensure => link,
|
||||
target => "/usr/local/share/solr/example/etc"
|
||||
require => File["/srv/solr/run"],
|
||||
}
|
||||
file { "/srv/solr/run/lib":
|
||||
ensure => link,
|
||||
target => "/usr/local/share/solr/example/lib"
|
||||
require => File["/srv/solr/run"],
|
||||
}
|
||||
file { "/srv/solr/run/webapps":
|
||||
ensure => link,
|
||||
target => "/usr/local/share/solr/example/webapps"
|
||||
require => File["/srv/solr/run"],
|
||||
}
|
||||
|
||||
file { "/etc/init.d/solr":
|
||||
ensure => present,
|
||||
mode => "0755",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
source => "puppet:///modules/solr/solr.init",
|
||||
notify => Exec["add-service-solr"],
|
||||
}
|
||||
exec { "add-service-solr":
|
||||
path => "/bin:/usr/bin:/sbin:/usr/sbin",
|
||||
command => $::operatingsystem ? {
|
||||
"debian" => "update-rc.d solr defaults",
|
||||
"ubuntu" => "update-rc.d solr defaults",
|
||||
default => "chkconfig --add solr",
|
||||
},
|
||||
refreshonly => true,
|
||||
before => Service["solr"],
|
||||
}
|
||||
|
||||
service { "solr":
|
||||
enable => true,
|
||||
}
|
||||
|
||||
file { "/etc/solr":
|
||||
ensure => directory,
|
||||
mode => "0755",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
}
|
||||
file { "/etc/solr/htpasswd":
|
||||
ensure => present,
|
||||
mode => "0640",
|
||||
owner => "root",
|
||||
group => $apache::sslserver::group,
|
||||
require => File["/etc/solr"],
|
||||
}
|
||||
|
||||
$htdocs = "/usr/local/share/solr/htdocs"
|
||||
|
||||
file { $htdocs:
|
||||
ensure => directory,
|
||||
mode => "0755",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
require => Util::Extract::Tar["/usr/local/share/solr"],
|
||||
}
|
||||
file { "${htdocs}/.htaccess":
|
||||
ensure => present,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
source => [ "puppet:///files/solr/htaccess",
|
||||
"puppet:///modules/solr/htaccess", ],
|
||||
require => File[$htdocs],
|
||||
}
|
||||
|
||||
define configwebhost($htdocs) {
|
||||
file { "/srv/www/https/${name}/solr":
|
||||
ensure => link,
|
||||
target => $htdocs,
|
||||
require => File["/srv/www/https/${name}"],
|
||||
}
|
||||
}
|
||||
|
||||
if $solr_webhosts {
|
||||
apache::configfile { "solr.conf":
|
||||
http => false,
|
||||
source => "puppet:///modules/solr/solr-httpd.conf",
|
||||
}
|
||||
|
||||
configwebhost { $solr_webhosts:
|
||||
htdocs => $htdocs,
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue