Adds RHEL support to snmpd module.

Parameterize the package name so that things work on multiple
distros.

Also, updates the snmpd module so that that the init script is
written out on Ubuntu only (this is not required on RHEL).

Change-Id: Id5868b85fc0a7a6057d9be16c76dad2efb834f0e
Reviewed-on: https://review.openstack.org/23186
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
This commit is contained in:
Dan Prince 2013-02-28 12:20:33 -05:00 committed by Jenkins
parent dc37983643
commit e1284910fe
2 changed files with 40 additions and 12 deletions

View File

@ -1,8 +1,12 @@
# == Class: snmpd
#
class snmpd {
include snmpd::params
package { 'snmpd':
ensure => present,
name => $::snmpd::params::package_name,
}
service { 'snmpd':
ensure => running,
@ -12,19 +16,26 @@ class snmpd {
File['/etc/init.d/snmpd'],
],
}
# This file is only needed on machines pre-precise. There is a bug in
# the previous init script versions which causes them to attempt
# snmptrapd even if it's configured not to run, and then to report
# failure.
file { '/etc/init.d/snmpd':
ensure => present,
owner => 'root',
group => 'root',
mode => '0755',
source => 'puppet:///modules/snmpd/snmpd.init',
replace => true,
require => Package['snmpd'],
if ($::operatingsystem == 'Ubuntu') {
# This file is only needed on machines pre-precise. There is a bug in
# the previous init script versions which causes them to attempt
# snmptrapd even if it's configured not to run, and then to report
# failure.
file { '/etc/init.d/snmpd':
ensure => present,
owner => 'root',
group => 'root',
mode => '0755',
source => 'puppet:///modules/snmpd/snmpd.init',
replace => true,
require => Package['snmpd'],
}
File['/etc/init.d/snmpd'] -> Service['snmpd']
}
file { '/etc/snmp/snmpd.conf':
ensure => present,
owner => 'root',

17
manifests/params.pp Normal file
View File

@ -0,0 +1,17 @@
# Class: snmpd::params
#
# This class holds parameters that need to be
# accessed by other classes.
class snmpd::params {
case $::osfamily {
'Redhat': {
$package_name = 'net-snmp'
}
'Debian', 'Ubuntu': {
$package_name = 'snmpd'
}
default: {
fail("Unsupported osfamily: ${::osfamily} The 'snmpd' module only supports osfamily Ubuntu or Redhat(slaves only).")
}
}
}