puppet/snmp/manifests/init.pp
2015-05-04 11:00:36 +03:00

86 lines
2 KiB
Puppet

# Install net-snmp utilities
#
class snmp::utils {
case $::operatingsystem {
"openbsd": {
package { "net-snmp":
ensure => installed,
}
}
default: {
package { [ "net-snmp", "net-snmp-utils" ]:
ensure => installed,
}
}
}
}
# Install snmp trap daemon
#
# === Parameters
#
# $acl:
# Array containing list of allowed SNMP community names.
# Defaults is to allow all trap messages.
#
# === Sample usage
#
# class { "snmp::trapd":
# acl => [ "public", ],
# }
#
class snmp::trapd($acl=NONE) {
require snmp::utils
include user::system
realize(User["snmptrapd"], Group["snmptrapd"])
case $::operatingsystem {
"centos","redhat": {
file { "/etc/sysconfig/snmptrapd":
ensure => present,
source => "puppet:///modules/snmp/snmptrapd.sysconfig",
mode => "0644",
owner => "root",
group => "root",
notify => Service["snmptrapd"],
}
}
"openbsd": {
file { "/etc/rc.d/snmptrapd":
ensure => present,
source => "puppet:///modules/snmp/snmptrapd.rc",
mode => "0755",
owner => "root",
group => "wheel",
notify => Service["snmptrapd"],
}
}
default: {
fail("snmp::trapd not supported in ${::operatingsystem}")
}
}
file { "/etc/snmptrapd.conf":
ensure => present,
content => template("snmp/snmptrapd.conf.erb"),
mode => "0644",
owner => "root",
group => $::operatingsystem ? {
"openbsd" => "wheel",
default => "root",
},
notify => Service["snmptrapd"],
}
service { "snmptrapd":
ensure => running,
enable => true,
require => User["snmptrapd"],
}
}