# 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.9.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}"], } }