[root@apptesting puppet]# cat puppet.conf
[main]
# Where Puppet stores dynamic and growing data.
# The default value is '/var/puppet'.
vardir = /var/lib/puppet

# The Puppet log directory.
# The default value is '$vardir/log'.
logdir = /var/log/puppet

# Where Puppet PID files are kept.
# The default value is '$vardir/run'.
rundir = /var/run/puppet

# Where SSL certificates are kept.
# The default value is '$confdir/ssl'.
ssldir = $vardir/ssl

[puppetd]
# The file in which puppetd stores a list of the classes
# associated with the retrieved configuratiion. Can be loaded in
# the separate ``puppet`` executable using the ``--loadclasses``
# option.
# The default value is '$confdir/classes.txt'.
classfile = $vardir/classes.txt

# Where puppetd caches the local configuration. An
# extension indicating the cache format is added automatically.
# The default value is '$confdir/localconfig'.
localconfig = $vardir/localconfig

[puppetmasterd]
modulepath = /etc/puppet/modules


[root@apptesting puppet]# cat manifests/site.pp manifests/nodes.pp manifests/modules.pp
# /etc/puppet/manifests/site.pp
#

import "modules"
import "nodes"

# The filebucket option allows for file backups to the server
filebucket { main: server => 'puppet' }

# Set global defaults - including backing up all files to the main filebucket and adds a global path
File { backup => main }
Exec { path => "/usr/bin:/usr/sbin/:/bin:/sbin" }
# /etc/puppet/manifests/nodes.pp

node basenode {
include sudo
}

node 'apptesting.global.bio-rad.com inherits basenode {
}
# /etc/puppet/manifests/modules.pp

import "sudo"

[root@apptesting puppet]# cat modules/sudo/manifests/init.pp
# init.pp for sudoers file changes
# verify permissions and update the suders file

class sudo {

package { sudo: ensure => latest }

file { "/etc/sudoers":
owner => root,
group => root,
mode => 440,
source => "puppet:///sudo/sudoers",
require => Package["sudo"],
}
}