160 lines
4.1 KiB
Puppet
160 lines
4.1 KiB
Puppet
# Install AbuseSA Search.
|
|
#
|
|
# === Parameters
|
|
#
|
|
# $plugin:
|
|
# Analysis plugin file.
|
|
#
|
|
# $solrurl:
|
|
# URL to sorl.
|
|
#
|
|
# $logourl:
|
|
# Path to logo image.
|
|
#
|
|
# $cssfile:
|
|
# Path to css file.
|
|
#
|
|
# $webhosts:
|
|
# List of search virtual hosts.
|
|
#
|
|
class abusesa::search(
|
|
$plugin='solr-4.10.2-analysis-codenomicon.jar',
|
|
$solrurl="https://${::homename}/solr/generic/",
|
|
$logourl='img/Codenomicon_logo_small.png',
|
|
$cssfile='css/code.css',
|
|
$webhosts=undef,
|
|
) {
|
|
|
|
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')
|
|
}
|
|
}
|
|
|
|
file { '/usr/local/src/abusesa-search.tar.gz':
|
|
ensure => present,
|
|
mode => '0644',
|
|
owner => 'root',
|
|
group => 'root',
|
|
source => "puppet:///files/packages/${abusesa_search_package}",
|
|
}
|
|
|
|
util::extract::tar { '/usr/local/src/abusesa-search':
|
|
ensure => latest,
|
|
strip => '1',
|
|
source => '/usr/local/src/abusesa-search.tar.gz',
|
|
require => File['/usr/local/src/abusesa-search.tar.gz'],
|
|
before => Python::Setup::Install['/usr/local/src/abusesa-search'],
|
|
}
|
|
|
|
python::setup::install { '/usr/local/src/abusesa-search': }
|
|
|
|
package { 'python-BeautifulSoup':
|
|
ensure => installed,
|
|
name => $::operatingsystem ? {
|
|
'debian' => 'python-beautifulsoup',
|
|
'ubuntu' => 'python-beautifulsoup',
|
|
default => 'python-BeautifulSoup',
|
|
}
|
|
}
|
|
|
|
file { '/srv/solr/cores/generic':
|
|
ensure => directory,
|
|
mode => '0660',
|
|
owner => 'solr',
|
|
group => 'solr',
|
|
source => '/usr/local/src/abusesa-search/config/solr/cores/generic',
|
|
recurse => true,
|
|
purge => true,
|
|
force => true,
|
|
require => Util::Extract::Tar['/usr/local/src/abusesa-search'],
|
|
notify => Service['solr'],
|
|
}
|
|
|
|
file { '/srv/solr/cores/generic/conf/_rest_managed.json':
|
|
ensure => present,
|
|
mode => '0660',
|
|
owner => 'solr',
|
|
group => 'solr',
|
|
before => Service['solr'],
|
|
}
|
|
|
|
file { '/srv/solr/cores/lib/solr-analysis-codenomicon.jar':
|
|
ensure => present,
|
|
mode => '0660',
|
|
owner => 'solr',
|
|
group => 'solr',
|
|
source => "/usr/local/src/abusesa-search/bin/${plugin}",
|
|
require => Util::Extract::Tar['/usr/local/src/abusesa-search'],
|
|
notify => Service['solr'],
|
|
}
|
|
file { '/srv/solr/cores/lib/commons-net-3.1.jar':
|
|
ensure => present,
|
|
mode => '0660',
|
|
owner => 'solr',
|
|
group => 'solr',
|
|
source => '/usr/local/src/abusesa-search/search/analysis-codenomicon/lib/commons-net-3.1.jar',
|
|
require => Util::Extract::Tar['/usr/local/src/abusesa-search'],
|
|
notify => Service['solr'],
|
|
}
|
|
file { '/srv/solr/cores/lib/java-ipv6-0.8.jar':
|
|
ensure => present,
|
|
mode => '0660',
|
|
owner => 'solr',
|
|
group => 'solr',
|
|
source => '/usr/local/src/abusesa-search/search/analysis-codenomicon/lib/java-ipv6-0.8.jar',
|
|
require => Util::Extract::Tar['/usr/local/src/abusesa-search'],
|
|
notify => Service['solr'],
|
|
}
|
|
|
|
$htdocs = $::operatingsystem ? {
|
|
'ubuntu' => '/usr/local/share/abusesa-search/htdocs',
|
|
default => '/usr/share/abusesa-search/htdocs',
|
|
}
|
|
|
|
file { "${htdocs}/js/Config.js":
|
|
ensure => present,
|
|
mode => '0644',
|
|
owner => 'root',
|
|
group => 'root',
|
|
content => template('abusesa/search/Config.js.erb'),
|
|
require => Python::Setup::Install['/usr/local/src/abusesa-search'],
|
|
}
|
|
|
|
if $webhosts {
|
|
abusesa::search::configwebhost { $webhosts:
|
|
htdocs => $htdocs,
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Enable AbuseSA Search for virtual host.
|
|
#
|
|
define abusesa::search::configwebhost($htdocs) {
|
|
|
|
if ! defined(File["/srv/www/https/${name}/abusesa"]) {
|
|
file { "/srv/www/https/${name}/abusesa":
|
|
ensure => directory,
|
|
mode => '0755',
|
|
owner => 'root',
|
|
group => 'root',
|
|
}
|
|
file { "/srv/www/https/${name}/abusesa/index.html":
|
|
ensure => present,
|
|
mode => '0644',
|
|
owner => 'root',
|
|
group => 'root',
|
|
content => '',
|
|
}
|
|
}
|
|
|
|
file { "/srv/www/https/${name}/abusesa/search":
|
|
ensure => link,
|
|
target => $htdocs,
|
|
}
|
|
|
|
}
|