Manual merge of abusehelper and abusesa from parameterize branch

This commit is contained in:
Ossi Salmi 2015-03-16 17:12:34 +02:00
parent f517230310
commit 09ae1aa84b
10 changed files with 501 additions and 354 deletions

View file

@ -5,16 +5,23 @@ BRANCH = default
SOURCE = https://bitbucket.org/clarifiednetworks/abusesa/get/$(BRANCH).tar.gz
TARGET = abusesa-$(BRANCH)-$(TIMESTAMP).tar.gz
LIVESOURCE = https://bitbucket.org/codenomicon/abusesa-live/get/$(BRANCH).tar.gz
LIVETARGET = abusesa-live-$(BRANCH)-$(TIMESTAMP).tar.gz
PASSIVEDNSSOURCE = https://bitbucket.org/clarifiednetworks/abusesa-passivedns/get/$(BRANCH).tar.gz
PASSIVEDNSTARGET = abusesa-passivedns-$(BRANCH)-$(TIMESTAMP).tar.gz
SEARCHSOURCE = https://bitbucket.org/clarifiednetworks/abusesa-search/get/$(BRANCH).tar.gz
SEARCHSOURCE = https://bitbucket.org/codenomicon/abusesa-search/get/$(BRANCH).tar.gz
SEARCHTARGET = abusesa-search-$(BRANCH)-$(TIMESTAMP).tar.gz
all: tarball manifest
tarball: $(PACKAGES)/$(TARGET)
manifest: $(MANIFESTS)/abusesa.pp
live: livetarball livemanifest
livetarball: $(PACKAGES)/$(LIVETARGET)
livemanifest: $(MANIFESTS)/abusesa_live.pp
passivedns: passivednstarball passivednsmanifest
passivednstarball: $(PACKAGES)/$(PASSIVEDNSTARGET)
passivednsmanifest: $(MANIFESTS)/abusesa_passivedns.pp
@ -31,6 +38,14 @@ $(MANIFESTS)/abusesa.pp: $(PACKAGES)/$(TARGET)
@umask 022; echo $@; \
echo "\$$abusesa_package_latest = '$(TARGET)'"> $@
$(PACKAGES)/$(LIVETARGET):
@umask 022; echo $@; \
test -f $@ || curl -f --digest -u $(USER) -o $@ $(LIVESOURCE)
$(MANIFESTS)/abusesa_live.pp: $(PACKAGES)/$(LIVETARGET)
@umask 022; echo $@; \
echo "\$$abusesa_live_package_latest = '$(LIVETARGET)'" > $@
$(PACKAGES)/$(PASSIVEDNSTARGET):
@umask 022; echo $@; \
test -f $@ || curl -f --digest -u $(USER) -o $@ $(PASSIVEDNSSOURCE)

View file

@ -0,0 +1,3 @@
<Directory "/srv/www/https/*/vsroom">
AllowOverride All
</Directory>

View file

@ -1,91 +1,88 @@
# Install AbuseSA.
#
# === Global variables
# === Parameters
#
# $abusesa_datadir:
# AbuseSA home directory. Defaults to /var/lib/abusesa.
# $datadir:
# AbuseSA home directory. Defaults to /var/lib/abusesa.
#
# $abusesa_botnets:
# Array of botnet paths to start at boot.
# $botnets:
# Array of botnet paths to start at boot.
#
class abusesa {
# $botuser:
# User to run bots as. Defaults to abusesa.
#
class abusesa(
$datadir='/var/lib/abusesa',
$botnets=undef,
$botuser='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],
}
if ! $abusesa_package {
if $::abusesa_package_latest {
$abusesa_package = $::abusesa_package_latest
} else {
file { "/var/lib/abusesa":
ensure => directory,
mode => "2770",
owner => "abusesa",
group => "abusesa",
require => User["abusesa"],
}
fail('Must define $abusesa_package or $abusesa_package_latest')
}
}
file { "/var/lib/abusesa/.profile":
ensure => present,
mode => "0600",
owner => "abusesa",
group => "abusesa",
content => "umask 007\n",
require => File["/var/lib/abusesa"],
}
include user::system
realize(User['abusesa'], Group['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 $datadir != '/var/lib/abusesa' {
file { '/var/lib/abusesa':
ensure => link,
target => $datadir,
}
}
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": }
}
file { $datadir:
ensure => directory,
mode => '2770',
owner => 'abusesa',
group => 'abusesa',
}
if $abusesa_botnets {
class { "abusehelper::init":
botnets => $abusesa_botnets,
botuser => "abusesa",
}
file { '/var/lib/abusesa/.profile':
ensure => present,
mode => '0600',
owner => 'abusesa',
group => 'abusesa',
content => "umask 007\n",
}
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 $botnets {
class { 'abusehelper::init':
botnets => $botnets,
botuser => $botuser,
}
}
}

117
abusesa/manifests/live.pp Normal file
View file

@ -0,0 +1,117 @@
# Install AbuseSA Live.
#
# === Parameters
#
# $authurl:
# Authentication path. Defaults to '/collab/?action=authcredentials'.
#
# $boshurl:
# XMPP BOSH path. Defaults to '/bosh/'.
#
# $config:
# Source URL of custom config file.
#
# $webhosts:
# List of live virtual hosts.
#
class abusesa::live(
$authurl='/collab/?action=authcredentials',
$boshurl='/bosh/',
$config=undef,
$webhosts=undef,
) {
if ! $abusesa_live_package {
if $::abusesa_live_package_latest {
$abusesa_live_package = $::abusesa_live_package_latest
} else {
fail('Must define $abusesa_live_package or $abusesa_live_package_latest')
}
}
file { '/usr/local/src/abusesa-live.tar.gz':
ensure => present,
mode => '0644',
owner => 'root',
group => 'root',
source => "puppet:///files/packages/${abusesa_live_package}",
}
util::extract::tar { '/usr/local/src/abusesa-live':
ensure => latest,
strip => '1',
source => '/usr/local/src/abusesa-live.tar.gz',
require => File['/usr/local/src/abusesa-live.tar.gz'],
}
python::setup::install { '/usr/local/src/abusesa-live':
require => Util::Extract::Tar['/usr/local/src/abusesa-live'],
}
$htdocs = $::operatingsystem ? {
'ubuntu' => '/usr/local/share/abusesa-live/htdocs',
default => '/usr/share/abusesa-live/htdocs',
}
if $config {
$config_content = undef
} else {
$config_content = template('abusesa/live/config.json.erb')
}
file { "${htdocs}/config.json":
ensure => present,
mode => '0644',
owner => 'root',
group => 'root',
source => $config,
content => $config_content,
require => Python::Setup::Install['/usr/local/src/abusesa-live'],
}
if $webhosts {
apache::configfile { 'vsroom.conf':
http => false,
source => 'puppet:///modules/abusesa/vsroom-httpd.conf',
}
abusesa::live::configwebhost { $webhosts:
htdocs => $htdocs,
}
}
}
# Enable AbuseSA Live for virtual host.
#
define abusesa::live::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/live":
ensure => link,
target => $htdocs,
}
file { "/srv/www/https/${name}/vsroom":
ensure => directory,
force => true,
mode => '0755',
owner => 'root',
group => 'root',
}
file { "/srv/www/https/${name}/vsroom/.htaccess":
ensure => present,
mode => '0644',
owner => 'root',
group => 'root',
content => "Redirect permanent /vsroom/ /abusesa/live/\n",
}
}

View file

@ -27,18 +27,16 @@ class abusesa::passivedns(
if $datadir != '/var/lib/passivedns' {
file { '/var/lib/passivedns':
ensure => link,
target => $datadir,
require => File[$datadir],
ensure => link,
target => $datadir,
}
}
file { $datadir:
ensure => directory,
mode => '2770',
owner => 'passdns',
group => 'passdns',
require => User['passdns'],
ensure => directory,
mode => '2770',
owner => 'passdns',
group => 'passdns',
}
file { '/var/lib/passivedns/.profile':
@ -61,7 +59,7 @@ class abusesa::passivedns(
}
util::extract::tar { '/usr/local/src/abusesa-passivedns':
ensure => latest,
strip => 1,
strip => '1',
source => '/usr/local/src/abusesa-passivedns.tar.gz',
require => File['/usr/local/src/abusesa-passivedns.tar.gz'],
before => Python::Setup::Install['/usr/local/src/abusesa-passivedns'],

View file

@ -2,135 +2,132 @@
#
# === Parameters
#
# $plugin:
# Analysis plugin file.
# $plugin:
# Analysis plugin file.
#
# $solrurl:
# URL to sorl.
# $solrurl:
# URL to sorl.
#
# $logourl:
# Path to logo image.
# $logourl:
# Path to logo image.
#
# $cssfile:
# Path to css file.
# $cssfile:
# Path to css file.
#
# $webhosts:
# List of search virtual hosts.
# $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,
$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')
}
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}",
}
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"],
}
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": }
python::setup::install { '/usr/local/src/abusesa-search': }
package { "python-BeautifulSoup":
ensure => installed,
name => $::operatingsystem ? {
"debian" => "python-beautifulsoup",
"ubuntu" => "python-beautifulsoup",
default => "python-BeautifulSoup",
}
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-codenomicon.jar":
ensure => present,
mode => "0660",
owner => "solr",
group => "solr",
source => "/usr/local/src/abusesa-search/bin/${plugin}",
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-codenomicon/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-codenomicon/lib/java-ipv6-0.8.jar",
require => [
File["/srv/solr/cores/lib"],
Util::Extract::Tar["/usr/local/src/abusesa-search"],
],
notify => Service["solr"],
}
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'],
}
$htdocs = $::operatingsystem ? {
"ubuntu" => "/usr/local/share/abusesa-search/htdocs",
default => "/usr/share/abusesa-search/htdocs",
}
file { '/srv/solr/cores/generic/conf/_rest_managed.json':
ensure => present,
mode => '0660',
owner => 'solr',
group => 'solr',
before => Service['solr'],
}
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"],
}
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'],
}
if $webhosts {
abusesa::search::configwebhost { $webhosts:
htdocs => $htdocs,
}
$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,
}
}
}
@ -139,10 +136,18 @@ class abusesa::search(
#
define abusesa::search::configwebhost($htdocs) {
file { "/srv/www/https/${name}/search":
ensure => link,
target => $htdocs,
require => File["/srv/www/https/${name}"],
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/search":
ensure => link,
target => $htdocs,
}
}

View file

@ -0,0 +1,4 @@
{
"authUrl": "<%= @authurl %>",
"boshUrl": "<%= @boshurl %>"
}

View file

@ -0,0 +1,6 @@
var config = {
servlet: "select",
solrUrl: "<%= @solrurl %>",
logoUrl: "<%= @logourl %>",
cssFile: "<%= @cssfile %>"
};