Puppet: System Administration Automated

Support

Improved sudo recipe

This is an extension to the Simplest Puppet Recipe for sudo as it includes support for installing / removing Solaris sudo packages.

# sudo.pp
#
# Class used to install sudo and deploy a standardized sudoers file
#
class sudo {
        # create the sudoers file from a UCR template
        file { "/etc/sudoers":
                owner => root,
                group => root,
                mode => 440,
                source => "puppet:///dist/apps/sudo/sudoers"
        }
        case $operatingsystem {
                solaris: {
                      # create the sudo package staging directory
                        file { "/sysprov/dist/apps/sudo":
                                owner => puppet,
                                group => puppet,
                                ensure => directory
                             }
                      # copy the UCRsudo-currentversion package to the staging area
                        file { "/sysprov/dist/apps/sudo/UCRsudo-1-6-9p9":
                        owner => puppet,
                        group => puppet,
                        source => "puppet:///dist/apps/sudo/UCRsudo-1-6-9p9",
                             }

                        # install the UCRsudo-currentversion package
                        package { "UCRsudo-1-6-9p9":
                        ensure => installed,
                        provider => sun,
                        source => "/sysprov/dist/apps/sudo/UCRsudo-1-6-9p9",
                        require => File[ "/sysprov/dist/apps/sudo/UCRsudo-1-6-9p9" ]
                                }

                        # remove the UCRsudo-previousversion package
                        package { "UCRsudo":
                        ensure => absent,
                        provider => sun,
                                }

                        }
        }
}

#