On Wednesday, February 20, 2013 11:10:50 AM UTC-6, Dan
wrote:>
> Hi,
>
> I''ve defined a hash like so in my nodes.pp:
>
> net::addr { "eth5":
> rt => {
> rt1 => {
> address => ''192.168.10.0'',
> netmask => ''255.255.255.0'',
> gateway => ''192.5.28.19'',
> src => ''192.5.28.21''
> },
> }
>
> What I can''t get to access is the title of the hash in my
templates, so I
> want to print out the title of the hash i.e. "eth5", how can I do
that?
> Also I have a variable called $int in my define class in the file for my
> module (/etc/puppet/modules/net/manifests/addr.pp), how can I access that
> using the scope.lookupvar function from this template in the same module?
>
"eth5" is not the name/title of a hash, it is the title of a
*resource* of
defined type ''net::addr''. That resource has a parameter
''rt'' that is a
hash of hashes. Inside the resource, you can access the title as $title or
$name (either one). Inside a template evaluated by a template() or
inline_template() call from within the definition body, you should be able
to access it as @title or @name (and the hash as @rt).
Resources are not data objects for consumption by the catalog compiler
(except classes, inasmuch as those are sometimes cast as resources). You
should not attempt to use them as such. What you could do, however, would
be something along these lines:
class net {
$addresses = {
''eth5'' => {
rt => {
rt1 => {
address => ''192.168.10.0'',
netmask => ''255.255.255.0'',
gateway => ''192.5.28.19'',
src => ''192.5.28.21''
}
}
}
}
}
You can then access it as $net::addresses[''eth5''] from Puppet
DSL, and you
can use scope.lookupvar(''net::addresses'') to retrieve the
hash, and then
access the value of its ''eth5'' key.
John
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to puppet-users+unsubscribe@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.