~rlane/nova/ldapimprovements

« back to all changes in this revision

Viewing changes to contrib/puppet/manifests/classes/kern_module.pp

  • Committer: Ryan Lane
  • Date: 2010-11-24 15:46:32 UTC
  • mfrom: (382.48.1 trunk)
  • Revision ID: laner@controller-20101124154632-zh7kwjuyyd02a2lh
MergeĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# via http://projects.puppetlabs.com/projects/puppet/wiki/Kernel_Modules_Patterns 
 
2
 
 
3
define kern_module ($ensure) {
 
4
    $modulesfile = $operatingsystem ? { ubuntu => "/etc/modules", redhat => "/etc/rc.modules" }
 
5
    case $operatingsystem {
 
6
        redhat: { file { "/etc/rc.modules": ensure => file, mode => 755 } }
 
7
    }
 
8
    case $ensure {
 
9
        present: {
 
10
            exec { "insert_module_${name}":
 
11
                command => $operatingsystem ? {
 
12
                    ubuntu => "/bin/echo '${name}' >> '${modulesfile}'",
 
13
                    redhat => "/bin/echo '/sbin/modprobe ${name}' >> '${modulesfile}' "
 
14
                },
 
15
                unless => "/bin/grep -qFx '${name}' '${modulesfile}'"
 
16
            }
 
17
            exec { "/sbin/modprobe ${name}": unless => "/bin/grep -q '^${name} ' '/proc/modules'" }
 
18
        }
 
19
        absent: {
 
20
            exec { "/sbin/modprobe -r ${name}": onlyif => "/bin/grep -q '^${name} ' '/proc/modules'" }
 
21
            exec { "remove_module_${name}":
 
22
                command => $operatingsystem ? {
 
23
                    ubuntu => "/usr/bin/perl -ni -e 'print unless /^\\Q${name}\\E\$/' '${modulesfile}'",
 
24
                    redhat => "/usr/bin/perl -ni -e 'print unless /^\\Q/sbin/modprobe ${name}\\E\$/' '${modulesfile}'"
 
25
                },
 
26
                onlyif => $operatingsystem ? {
 
27
                    ubuntu => "/bin/grep -qFx '${name}' '${modulesfile}'",
 
28
                    redhat => "/bin/grep -q '^/sbin/modprobe ${name}' '${modulesfile}'"
 
29
                }
 
30
            }
 
31
        }
 
32
        default: { err ( "unknown ensure value ${ensure}" ) }
 
33
    }
 
34
}