diff --git a/abusesa/manifests/init.pp b/abusesa/manifests/init.pp index 2edd18d..cb896af 100644 --- a/abusesa/manifests/init.pp +++ b/abusesa/manifests/init.pp @@ -93,22 +93,35 @@ class abusesa { # Install AbuseSA Search. # -class abusesa::search { +# === Parameters +# +# $solrurl: +# URL to sorl. +# +# $logourl: +# Path to logo image. +# +# $cssfile: +# Path to css file. +# +# $webhosts: +# List of search virtual hosts. +# +class abusesa::search( + $solrurl="https://${::homename}/solr/generic/", + $logourl="img/Codenomicon_logo_small.png", + $cssfile="css/code.css", + $webhosts=undef +) { - include solr - - if !$abusesa_search_package { - if $abusesa_search_package_latest { - $abusesa_search_package = $abusesa_search_package_latest + if ! $abusesa_search_package { + if $::abusesa_search_package_latest { + $abusesa_search_package = $::abusesa_search_package_latest } else { fail("Must define \$abusesa_search_package or \$abusesa_search_package_latest") } } - if !$abusesa_search_solrurl { - $abusesa_search_solrurl = "https://${::homename}/solr/generic/" - } - file { "/usr/local/src/abusesa-search.tar.gz": ensure => present, mode => "0644", @@ -136,10 +149,6 @@ class abusesa::search { } } - package { "python-lxml": - ensure => installed, - } - file { "/srv/solr/cores/generic": ensure => directory, mode => "0660", @@ -206,18 +215,23 @@ class abusesa::search { require => Python::Setup::Install["/usr/local/src/abusesa-search"], } - define configwebhost($htdocs) { - file { "/srv/www/https/${name}/search": - ensure => link, - target => $htdocs, - require => File["/srv/www/https/${name}"], - } - } - - if $abusesa_search_webhosts { - configwebhost { $abusesa_search_webhosts: + if $webhosts { + abusesa::search::configwebhost { $webhosts: htdocs => $htdocs, } } } + + +# Enable AbuseSA Search for virtual host. +# +define abusesa::search::configwebhost($htdocs) { + + file { "/srv/www/https/${name}/search": + ensure => link, + target => $htdocs, + require => File["/srv/www/https/${name}"], + } + +} diff --git a/solr/manifests/init.pp b/solr/manifests/init.pp index b35103f..c8dbb8b 100644 --- a/solr/manifests/init.pp +++ b/solr/manifests/init.pp @@ -1,19 +1,34 @@ # Install Apache Solr. # -class solr { +# === Parameters +# +# $cores: +# List of cores to enable. +# +# $datadir: +# Solr data directory. Defaults to "/srv/solr". +# +# $webhosts: +# List of Solr virtual hosts. +# +class solr( + $cores, + $datadir="/srv/solr", + $webhosts=undef +) { - if !$solr_package { - if $solr_package_latest { - $solr_package = $solr_package_latest + if ! ($::apache::sslserver::user and $::apache::sslserver::group) { + fail("Must declare apache before 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", @@ -32,30 +47,22 @@ class solr { 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"], - } - + if $datadir != "/srv/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"], + target => $datadir, + require => File[$datadir], } } + file { $datadir: + ensure => directory, + mode => "0770", + owner => "solr", + group => "solr", + require => User["solr"], + } + file { [ "/srv/solr/cores", "/srv/solr/cores/lib", "/srv/solr/index", @@ -153,17 +160,17 @@ class solr { ensure => present, mode => "0640", owner => "root", - group => $apache::sslserver::group, + group => $::apache::sslserver::group, require => File["/etc/solr"], } $htdocs = "/usr/local/share/solr/htdocs" file { $htdocs: - ensure => directory, - mode => "0755", - owner => "root", - group => "root", + ensure => directory, + mode => "0755", + owner => "root", + group => "root", require => Util::Extract::Tar["/usr/local/share/solr"], } file { "${htdocs}/.htaccess": @@ -176,15 +183,7 @@ class solr { 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 { + if $webhosts { include apache::mod::proxy include apache::mod::proxy_http include apache::mod::rewrite @@ -194,22 +193,22 @@ class solr { source => "puppet:///modules/solr/solr-httpd.conf", } - configwebhost { $solr_webhosts: + solr::configwebhost { $webhosts: htdocs => $htdocs, } } - if !$solr_requests_package { - if $solr_requests_package_latest { - $solr_requests_package = $solr_requests_package_latest + if ! $solr_requests_package { + if $::solr_requests_package_latest { + $solr_requests_package = $::solr_requests_package_latest } else { fail("Must define \$solr_requests_package or \$solr_requests_package_latest") } } - if !$solr_pysolr_package { - if $solr_pysolr_package_latest { - $solr_pysolr_package = $solr_pysolr_package_latest + if ! $solr_pysolr_package { + if $::solr_pysolr_package_latest { + $solr_pysolr_package = $::solr_pysolr_package_latest } else { fail("Must define \$solr_pysolr_package or \$solr_pysolr_package_latest") } @@ -225,3 +224,16 @@ class solr { } } + + +# Enable solr for virtual host. +# +define solr::configwebhost($htdocs) { + + file { "/srv/www/https/${name}/solr": + ensure => link, + target => $htdocs, + require => File["/srv/www/https/${name}"], + } + +} diff --git a/solr/templates/solr.xml.erb b/solr/templates/solr.xml.erb index dd0faf8..4496a18 100644 --- a/solr/templates/solr.xml.erb +++ b/solr/templates/solr.xml.erb @@ -1,7 +1,7 @@ -<% @solr_core.each do |core| -%> +<% @cores.each do |core| -%>