# 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 => [ 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"], } $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}"], } }