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