# ipmi class to load ipmi client modules except on VMware platforms class base::ipmi { # disable ipmi and ipmievd on vmware (or others) if $::is_virtual == 'true' { # string comparison case $::operatingsystem { 'debian', 'ubuntu': { package { 'ipmitool': ensure => purged } } 'redhat': { service { 'ipmi': ensure => stopped, enable => false, } } default: {} } } else { case $::operatingsystem { 'debian','ubuntu': { package { 'ipmitool': ensure => present; } base::os::kernel-module { 'ipmi_msghandler': ensure => present; } base::os::kernel-module { 'ipmi_si': ensure => present, require => Os::Kernel-module['ipmi_msghandler']; } base::os::kernel-module { 'ipmi_devintf': ensure => present, require => Os::Kernel-module['ipmi_si']; } service { 'ipmievd': ensure => running, name => 'ipmievd', enable => true, hasstatus => false, status => 'pidof ipmievd', require => [Os::Kernel-module['ipmi_devintf'], File['/etc/default/ipmievd'] ], } file { '/etc/default/ipmievd': source => 'puppet:///modules/base/ipmi/etc/default/ipmievd', notify => Service['ipmievd'], } } 'redhat': { case $::lsbmajdistrelease { '6': { package { 'OpenIPMI': ensure => present; } } default: { package { 'OpenIPMI-tools': ensure => present; 'OpenIPMI': ensure => present; } } } service { 'ipmi': ensure => running, name => 'ipmi', enable => true, hasstatus => true, require => Package['OpenIPMI'], } case $::lsbdistcodename { 'tikanga','santiago': { service { 'ipmievd': ensure => running, name => 'ipmievd', enable => true, hasstatus => true, require => $::lsbdistcodename ? { 'tikanaga' => Package['OpenIPMI-tools'], default => Package['OpenIPMI'], }, } } } } } } }