diff --git a/abusehelper/lib/facter/botnets.rb b/abusehelper/lib/facter/botnets.rb index 75000f9..3e6c49e 100644 --- a/abusehelper/lib/facter/botnets.rb +++ b/abusehelper/lib/facter/botnets.rb @@ -1,15 +1,15 @@ Facter.add(:botnets) do - setcode do - botnets = [] - if File.executable?("/usr/bin/botnet") - listcmd = "su -s /bin/sh - nobody -c '/usr/bin/botnet list'" - output = Facter::Util::Resolution.exec(listcmd) - output.each_line do |line| - if m = line.match(/^\[\d+\]\s+(.*\.py)/) - botnets << File.basename(File.dirname(m[1])) - end - end + setcode do + botnets = [] + if File.executable?('/usr/bin/botnet') + listcmd = "su -s /bin/sh - nobody -c '/usr/bin/botnet list'" + output = Facter::Util::Resolution.exec(listcmd) + output.each_line do |line| + if m = line.match(/^\[\d+\]\s+(.*\.py)/) + botnets << File.basename(File.dirname(m[1])) end - botnets.sort.join(',') + end end + botnets.sort.join(',') + end end diff --git a/abusehelper/manifests/init.pp b/abusehelper/manifests/init.pp index 7fe22da..34cc401 100644 --- a/abusehelper/manifests/init.pp +++ b/abusehelper/manifests/init.pp @@ -1,171 +1,173 @@ # Install abusehelper. # -# === Global variables +# === Parameters # -# $abusehelper_datadir: -# Abusehelper home directory. Defaults to /var/lib/ah2. +# $datadir: +# Abusehelper home directory. Defaults to /var/lib/ah2. # -# $abusehelper_botnets: -# Array of botnet paths to start at boot. +# $botnets: +# Array of botnet paths to start at boot. # -class abusehelper { +# $botuser: +# User to run bots as. Defaults to abusehel. +# +class abusehelper( + $datadir='/var/lib/ah2', + $botnets=undef, + $botuser='abusehel' +) { - case $::operatingsystem { - "ubuntu": { - package { [ "python-pyme", "python-tz" ]: - ensure => installed, - } - } + case $::operatingsystem { + 'ubuntu': { + package { [ 'python-pyme', 'python-tz' ]: + ensure => installed, + } } + default: { } + } - if !$abusehelper_package { - if $abusehelper_package_latest { - $abusehelper_package = $abusehelper_package_latest - } else { - fail("Must define \$abusehelper_package or \$abusehelper_package_latest") - } - } - - if !$idiokit_package { - if $idiokit_package_latest { - $idiokit_package = $idiokit_package_latest - } else { - fail("Must define \$idiokit_package or \$idiokit_package_latest") - } - } - - file { "/usr/local/src/abusehelper.tar.gz": - ensure => present, - mode => "0644", - owner => "root", - group => $::operatingsystem ? { - "openbsd" => "wheel", - default => "root", - }, - source => "puppet:///files/packages/${abusehelper_package}", - } - util::extract::tar { "/usr/local/src/abusehelper": - ensure => latest, - strip => 1, - source => "/usr/local/src/abusehelper.tar.gz", - require => File["/usr/local/src/abusehelper.tar.gz"], - before => Python::Setup::Install["/usr/local/src/abusehelper"], - } - file { "/usr/local/src/idiokit.tar.gz": - ensure => present, - mode => "0644", - owner => "root", - group => $::operatingsystem ? { - "openbsd" => "wheel", - default => "root", - }, - source => "puppet:///files/packages/${idiokit_package}", - } - util::extract::tar { "/usr/local/src/idiokit": - ensure => latest, - strip => 1, - source => "/usr/local/src/idiokit.tar.gz", - require => File["/usr/local/src/idiokit.tar.gz"], - before => Python::Setup::Install["/usr/local/src/idiokit"], - } - - if $::operatingsystem in ["CentOS","RedHat"] and versioncmp($::operatingsystemrelease, "6") < 0 { - include python::python26 - python::setup::install { [ "/usr/local/src/abusehelper", - "/usr/local/src/idiokit", ]: - python => "python2.6", - require => Package["python26"], - } + if ! $abusehelper_package { + if $::abusehelper_package_latest { + $abusehelper_package = $::abusehelper_package_latest } else { - python::setup::install { [ "/usr/local/src/abusehelper", - "/usr/local/src/idiokit", ]: - } + fail('Must define $abusehelper_package or $abusehelper_package_latest') } + } - include user::system - realize(User["abusehel"], Group["abusehel"]) - - if $abusehelper_datadir { - file { $abusehelper_datadir: - ensure => directory, - mode => "2770", - owner => "abusehel", - group => "abusehel", - require => User["abusehel"], - } - - file { "/var/lib/ah2": - ensure => link, - target => $abusehelper_datadir, - require => File[$abusehelper_datadir], - } + if ! $idiokit_package { + if $::idiokit_package_latest { + $idiokit_package = $::idiokit_package_latest } else { - file { "/var/lib/ah2": - ensure => directory, - mode => "2770", - owner => "abusehel", - group => "abusehel", - require => User["abusehel"], - } + fail('Must define $idiokit_package or $idiokit_package_latest') } + } - file { "/var/lib/ah2/.profile": - ensure => present, - mode => "0600", - owner => "abusehel", - group => "abusehel", - content => "umask 007\n", - require => File["/var/lib/ah2"], - } + file { '/usr/local/src/abusehelper.tar.gz': + ensure => present, + mode => '0644', + owner => 'root', + group => $::operatingsystem ? { + 'openbsd' => 'wheel', + default => 'root', + }, + source => "puppet:///files/packages/${abusehelper_package}", + } + util::extract::tar { '/usr/local/src/abusehelper': + ensure => latest, + strip => '1', + source => '/usr/local/src/abusehelper.tar.gz', + require => File['/usr/local/src/abusehelper.tar.gz'], + before => Python::Setup::Install['/usr/local/src/abusehelper'], + } - if $abusehelper_botnets { - class { "abusehelper::init": - botnets => $abusehelper_botnets, - } + file { '/usr/local/src/idiokit.tar.gz': + ensure => present, + mode => '0644', + owner => 'root', + group => $::operatingsystem ? { + 'openbsd' => 'wheel', + default => 'root', + }, + source => "puppet:///files/packages/${idiokit_package}", + } + util::extract::tar { '/usr/local/src/idiokit': + ensure => latest, + strip => '1', + source => '/usr/local/src/idiokit.tar.gz', + require => File['/usr/local/src/idiokit.tar.gz'], + before => Python::Setup::Install['/usr/local/src/idiokit'], + } + + if $::operatingsystem in ['CentOS','RedHat'] and versioncmp($::operatingsystemrelease, '6') < 0 { + include python::python26 + python::setup::install { [ + '/usr/local/src/abusehelper', + '/usr/local/src/idiokit', + ]: + python => 'python2.6', + require => Package['python26'], } + } else { + python::setup::install { [ + '/usr/local/src/abusehelper', + '/usr/local/src/idiokit', + ]: } + } + + include user::system + realize(User['abusehel'], Group['abusehel']) + + if $datadir != '/var/lib/ah2' { + file { '/var/lib/ah2': + ensure => link, + target => $datadir, + } + } + + file { $datadir: + ensure => directory, + mode => '2770', + owner => 'abusehel', + group => 'abusehel', + } + + file { '/var/lib/ah2/.profile': + ensure => present, + mode => '0600', + owner => 'abusehel', + group => 'abusehel', + content => "umask 007\n", + } + + if $botnets { + class { 'abusehelper::init': + botnets => $botnets, + botuser => $botuser, + } + } } # Install abusehelper init script. # -class abusehelper::init($botnets, $botuser="abusehel") { +class abusehelper::init($botnets, $botuser) { - file { "/etc/sysconfig/botnet": - ensure => present, - name => $::operatingsystem ? { - "debian" => "/etc/default/botnet", - "ubuntu" => "/etc/default/botnet", - default => "/etc/sysconfig/botnet", - }, - mode => "0644", - owner => "root", - group => "root", - content => template("abusehelper/botnet.sysconfig.erb"), - before => Service["botnet"], - } + file { '/etc/sysconfig/botnet': + ensure => present, + name => $::operatingsystem ? { + 'debian' => '/etc/default/botnet', + 'ubuntu' => '/etc/default/botnet', + default => '/etc/sysconfig/botnet', + }, + mode => '0644', + owner => 'root', + group => 'root', + content => template('abusehelper/botnet.sysconfig.erb'), + before => Service['botnet'], + } - file { "/etc/init.d/botnet": - ensure => present, - mode => "0755", - owner => "root", - group => "root", - source => "puppet:///modules/abusehelper/botnet.init", - notify => Exec["add-service-botnet"], - } - exec { "add-service-botnet": - path => "/bin:/usr/bin:/sbin:/usr/sbin", - command => $::operatingsystem ? { - "debian" => "update-rc.d botnet defaults", - "ubuntu" => "update-rc.d botnet defaults", - default => "chkconfig --add botnet", - }, - refreshonly => true, - before => Service["botnet"], - } + file { '/etc/init.d/botnet': + ensure => present, + mode => '0755', + owner => 'root', + group => 'root', + source => 'puppet:///modules/abusehelper/botnet.init', + notify => Exec['add-service-botnet'], + } + exec { 'add-service-botnet': + path => '/bin:/usr/bin:/sbin:/usr/sbin', + command => $::operatingsystem ? { + 'debian' => 'update-rc.d botnet defaults', + 'ubuntu' => 'update-rc.d botnet defaults', + default => 'chkconfig --add botnet', + }, + refreshonly => true, + before => Service['botnet'], + } - service { "botnet": - enable => true, - } + service { 'botnet': + enable => true, + } } diff --git a/abusesa/Makefile b/abusesa/Makefile index 39e57d8..30a2917 100644 --- a/abusesa/Makefile +++ b/abusesa/Makefile @@ -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) diff --git a/abusesa/files/vsroom-httpd.conf b/abusesa/files/vsroom-httpd.conf new file mode 100644 index 0000000..b74a1ba --- /dev/null +++ b/abusesa/files/vsroom-httpd.conf @@ -0,0 +1,3 @@ + + AllowOverride All + diff --git a/abusesa/manifests/init.pp b/abusesa/manifests/init.pp index b5c56c1..4465706 100644 --- a/abusesa/manifests/init.pp +++ b/abusesa/manifests/init.pp @@ -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, + } + } } diff --git a/abusesa/manifests/live.pp b/abusesa/manifests/live.pp new file mode 100644 index 0000000..8ce30e6 --- /dev/null +++ b/abusesa/manifests/live.pp @@ -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", + } + +} diff --git a/abusesa/manifests/passivedns.pp b/abusesa/manifests/passivedns.pp index c9edb8c..f6ad21c 100644 --- a/abusesa/manifests/passivedns.pp +++ b/abusesa/manifests/passivedns.pp @@ -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'], diff --git a/abusesa/manifests/search.pp b/abusesa/manifests/search.pp index b8571bc..83adfff 100644 --- a/abusesa/manifests/search.pp +++ b/abusesa/manifests/search.pp @@ -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, + } } diff --git a/abusesa/templates/live/config.json.erb b/abusesa/templates/live/config.json.erb new file mode 100644 index 0000000..10aa204 --- /dev/null +++ b/abusesa/templates/live/config.json.erb @@ -0,0 +1,4 @@ +{ + "authUrl": "<%= @authurl %>", + "boshUrl": "<%= @boshurl %>" +} diff --git a/abusesa/templates/search/Config.js.erb b/abusesa/templates/search/Config.js.erb new file mode 100644 index 0000000..5f0728e --- /dev/null +++ b/abusesa/templates/search/Config.js.erb @@ -0,0 +1,6 @@ +var config = { + servlet: "select", + solrUrl: "<%= @solrurl %>", + logoUrl: "<%= @logourl %>", + cssFile: "<%= @cssfile %>" +};