I am exploring usage of parameterized classes. I hit a wall when
trying to override values of parameters in a node definition that
inherits the class from a parent node. Is there a way to do this,
or must I include the class only in the child node?
I'm hoping to avoid using subclasses, because there would have to
be oodles of them to accomodate the all the variations between nodes.
node default {
class { sudoers: }
}
node 'sl11lab02' inherits default {
# this runs but does nothing
Class[sudoers] { additional_rules => [ "$rules_uas" ] }
# this errors with "Cannot assign to variables in other namespaces"
#$sudoers::additional_rules = [ "$rules_uas" ]
# this errors with "Class[Sudoers] is already defined"
#class { sudoers: additional_rules => [ "$rules_uas" ] }
}
class sudoers (
$default_rules = "$rules_unixgroup",
$additional_rules = [ "" ]
) {
file { "/tmp/sudoers":
owner => root, group => root, mode => 440,
content => template("sudoers/sudoers.erb"),
notify => Exec["check-sudoers"],
}
exec { "check-sudoers":
command => "/usr/sbin/visudo -cf /tmp/sudoers && cp /tmp/sudoers
/etc/sudoers",
refreshonly => true,
}
}
--
-ashley
Did you try poking at it with a stick?
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.