237 lines
6.6 KiB
Puppet
237 lines
6.6 KiB
Puppet
# Install AbuseSA.
|
|
#
|
|
# === Global variables
|
|
#
|
|
# $abusesa_datadir:
|
|
# AbuseSA home directory. Defaults to /var/lib/abusesa.
|
|
#
|
|
# $abusesa_botnets:
|
|
# Array of botnet paths to start at boot.
|
|
#
|
|
class abusesa {
|
|
|
|
if !$abusesa_package {
|
|
if $abusesa_package_latest {
|
|
$abusesa_package = $abusesa_package_latest
|
|
} else {
|
|
fail("Must define \$abusesa_package or \$abusesa_package_latest")
|
|
}
|
|
}
|
|
|
|
include user::system
|
|
realize(User["abusesa"], Group["abusesa"])
|
|
|
|
if $abusesa_datadir {
|
|
file { $abusesa_datadir:
|
|
ensure => directory,
|
|
mode => "2770",
|
|
owner => "abusesa",
|
|
group => "abusesa",
|
|
require => User["abusesa"],
|
|
}
|
|
file { "/var/lib/abusesa":
|
|
ensure => link,
|
|
target => $abusesa_datadir,
|
|
require => File[$abusesa_datadir],
|
|
}
|
|
} else {
|
|
file { "/var/lib/abusesa":
|
|
ensure => directory,
|
|
mode => "2770",
|
|
owner => "abusesa",
|
|
group => "abusesa",
|
|
require => User["abusesa"],
|
|
}
|
|
}
|
|
|
|
file { "/var/lib/abusesa/.profile":
|
|
ensure => present,
|
|
mode => "0600",
|
|
owner => "abusesa",
|
|
group => "abusesa",
|
|
content => "umask 007\n",
|
|
require => File["/var/lib/abusesa"],
|
|
}
|
|
|
|
file { "/usr/local/src/abusesa.tar.gz":
|
|
ensure => present,
|
|
mode => "0644",
|
|
owner => "root",
|
|
group => $::operatingsystem ? {
|
|
"openbsd" => "wheel",
|
|
default => "root",
|
|
},
|
|
source => "puppet:///files/packages/${abusesa_package}",
|
|
}
|
|
util::extract::tar { "/usr/local/src/abusesa":
|
|
ensure => latest,
|
|
strip => 1,
|
|
source => "/usr/local/src/abusesa.tar.gz",
|
|
require => File["/usr/local/src/abusesa.tar.gz"],
|
|
before => Python::Setup::Install["/usr/local/src/abusesa"],
|
|
}
|
|
|
|
if $::operatingsystem in ["CentOS","RedHat"] and versioncmp($::operatingsystemrelease, "6") < 0 {
|
|
include python::python26
|
|
python::setup::install { "/usr/local/src/abusesa":
|
|
python => "python2.6",
|
|
require => Package["python26"],
|
|
}
|
|
} else {
|
|
python::setup::install { "/usr/local/src/abusesa": }
|
|
}
|
|
|
|
if $abusesa_botnets {
|
|
class { "abusehelper::init":
|
|
botnets => $abusesa_botnets,
|
|
botuser => "abusesa",
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Install 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
|
|
) {
|
|
|
|
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 => [
|
|
File["/srv/solr/cores"],
|
|
Util::Extract::Tar["/usr/local/src/abusesa-search"],
|
|
],
|
|
notify => Service["solr"],
|
|
}
|
|
file { "/srv/solr/cores/lib/solr-analysis-clarified.jar":
|
|
ensure => present,
|
|
mode => "0660",
|
|
owner => "solr",
|
|
group => "solr",
|
|
source => "/usr/local/src/abusesa-search/bin/solr-4.6.0-analysis-clarified.jar",
|
|
require => [
|
|
File["/srv/solr/cores/lib"],
|
|
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-clarified/lib/commons-net-3.1.jar",
|
|
require => [
|
|
File["/srv/solr/cores/lib"],
|
|
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-clarified/lib/java-ipv6-0.8.jar",
|
|
require => [
|
|
File["/srv/solr/cores/lib"],
|
|
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/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) {
|
|
|
|
file { "/srv/www/https/${name}/search":
|
|
ensure => link,
|
|
target => $htdocs,
|
|
require => File["/srv/www/https/${name}"],
|
|
}
|
|
|
|
}
|