puppet/abusehelper/manifests/init.pp
2013-10-10 15:15:39 +03:00

171 lines
4.9 KiB
Puppet

# Install abusehelper.
#
# === Global variables
#
# $abusehelper_datadir:
# Abusehelper home directory. Defaults to /var/lib/ah2.
#
# $abusehelper_botnets:
# Array of botnet paths to start at boot.
#
class abusehelper {
case $::operatingsystem {
"ubuntu": {
package { [ "python-pyme", "python-tz" ]:
ensure => installed,
}
}
}
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"],
}
} else {
python::setup::install { [ "/usr/local/src/abusehelper",
"/usr/local/src/idiokit", ]:
}
}
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],
}
} else {
file { "/var/lib/ah2":
ensure => directory,
mode => "2770",
owner => "abusehel",
group => "abusehel",
require => User["abusehel"],
}
}
file { "/var/lib/ah2/.profile":
ensure => present,
mode => "0600",
owner => "abusehel",
group => "abusehel",
content => "umask 007\n",
require => File["/var/lib/ah2"],
}
if $abusehelper_botnets {
class { "abusehelper::init":
botnets => $abusehelper_botnets,
}
}
}
# Install abusehelper init script.
#
class abusehelper::init($botnets, $botuser="abusehel") {
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"],
}
service { "botnet":
enable => true,
}
}