Hi John,
Thanks for the response. They variables are only used in the template, as
the NRPE daemon is manged by flat files. I will do some research into hiera.
--George
On Tuesday, September 25, 2012 11:28:31 AM UTC-4, jcbollinger wrote:
>
>
>
> On Monday, September 24, 2012 11:47:31 AM UTC-5, George Shammas wrote:
>>
>> I am trying to override variables in a class that is defined in the
>> default node profile. I want parent class to be included in every single
>> node, but override its variables in others. I have tried
>> it several different ways now, and every single time the variables either
>> become unset (undefined) or are set to the value of the first if statement.
>
>
> You cannot override class variables. You especially cannot override class
> parameters. You can override only resource properties (and classes are not
> resources, appearances notwithstanding).
>
> Moreover, subclasses do not set parameters for their parent classes, even
> if they themselves have parameters of the same names. Therefore, it is
> usually a bad idea to inherit from a parametrized class (in fact, the v 2.7
> docs say it's not supported). If you do so, then you must explicitly
> declare the parent class on every node for which you want to set
> non-default parameters, whether or not you also declare the child class.
>
> Since you don't actually use the variables in question in your example, I
> can't guess what your larger purpose may be, therefore it is difficult for
> me to advise you. Nevertheless, at the low level we are focused on, you
> can achieve something similar to what you have asked by employing a data
> hierarchy instead of a class hierarchy. That is what the Hiera module is
> all about. Since hiera will be integrated into Puppet 3, getting started
> with it now is also forward-looking.
>
> Once you install hiera and set up your data, the Puppet side could be as
> simple as this:
>
> class nrpe::load { # no parameters
> package { 'nagios-plugins-load': ensure => installed }
>
> $warn_real = hiera('nrpe::warn')
> $crit_real = hiera('nrpe::crit')
>
> # alternatively, load $warn and $crit via hiera,
> # and retain the original logic for setting
> # $warn_real and $crit_real
>
> file { "/etc/nagios/command.d/load.cfg":
> owner => root,
> group => root,
> mode => 640,
> content => template("nrpe/load.cfg.erb"),
> notify => Service[nrpe]
> }
> }
>
> node "somenode.tld" inherits basenode {
> # no subclass involved
> }
>
>
> John
>
>
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/puppet-users/-/0C5HzeVgMZoJ.
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.