I have trying to dig more into this, and I found out the problem is not
the scope of the variable, but hiera!
So, it seems like hiera('netmask') is actually looking into the node's
facts! Is this the expected behavior?
This is my hiera.yaml:
:backends:
- puppet
:hierarchy:
- %{hostname}
- %{environment}
- group_%{group0}
- group_%{group1}
- group_%{group2}
- group_%{group3}
- group_%{group4}
- group_%{group5}
- group_%{group6}
- group_%{group7}
- group_%{group8}
- group_%{group9}
:puppet:
:datasource: data
Most of those classes don't even exist. And data::myhost certainly doesn't.
And the place it should be looking into the right variable is:
class data::group_all {
$netmask = "255.255.252.0"
}
(in this case, $group1='all')
I have tried, for the sake of testing, to change the variable to
something different (and the hiera lookup) and it does the right thing,
so I am quite sure it's actually conflicting with the "netmask" fact.
Any ideas?
Thanks!
Pablo
On 03/30/2012 11:59 AM, Pablo Fernandez wrote:
Hi,
I have just found something very weird. I define this:
define networking::basic_interface ($ip, $netmask = hiera('netmask'),
$gateway = hiera('gateway')) {
file { "/etc/sysconfig/network-scripts/ifcfg-${name}" :
content =>
"DEVICE=${name}\nIPADDR=${ip}\nNETMASK=${netmask}\nGATEWAY=${gateway}\nONBOOT=yes\n",
mode => '0644', owner => 'root', group => 'root',
}
}
And create the resource doing:
networking::basic_interface { "eth0:0": ip => '1.2.3.4' }
So, the variables $netmask and $gateway should pick up their default
values, that are taken from Hiera. But then, when I apply the
manifests in the node, the value picked up is the one from Facter.
To summarize: the content of the file takes ${netmask} which is a
parameter of the define, but it turns out that the fact $::netmask has
preference over it. How is it possible?
Thanks!
Pablo
--
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.