Thanks Henrik for the reply, it works.

On Friday, 27 February 2015 15:19:16 UTC+1, Henrik Lindberg wrote:
>
> On 2015-25-02 15:42, Fran Rodríguez wrote: 
> > Hi there, 
> > 
> > Some information is missing, sorry for that, this is the correct yaml: 
> > 
> > | 
> > nodes: 
> >     host1: 
> >        ip:xxx.xxx.xxx 
> >        cdir:bbb.bbb.bbb 
> > interface:aaa 
> >     host2: 
> >        ip:yyy.yyy.yyy 
> >        cdir:bbb.bbb.bbb 
> > interface:aaa 
> > | 
> > 
> > This yaml is declarated on a Foreman, we use Foreman like Hiera, and it 
> > uses for a template: 
> > 
> > | 
> > <%=@nodes[0][name]%> 
> > 
> IPaddr2::<%=@nodes[0]['ip']%>/<%=@nodes[0]['cidr']%>/<%=@nodes[0]['interface']-%>
>  
>
> > | 
> > 
>
> I assume that is not working. The yaml you outline means nodes is a 
> hash, it has the keys 'host1', and 'host2'. so... 
>
> @nodes['host1']['ip'] 
>
> But, I guess that you do not know the name of the host and want to pick 
> the "first". The order in a hash is undefined, so you will be picking a 
> random entry - it may not be the first entry you see in the yaml because 
> it may change as it is read into memory. (This depends on which version 
> of ruby you are using, and what kind of processing that has been made 
> internally on the particular hash). 
>
> If you want to get the "first key", you could do this: 
>
> key = @nodes.keys[0] 
>
> and then 
>
> @nodes[key]['ip'] 
>
> - henrik 
>
> > 
> > And its defined on a manifest: 
> > 
> > | 
> > classheartbeat { 
> >     template_resources =>'site/heartbeat/resources.erb' 
> > } 
> > | 
> > 
> > 
> > I only need the first element to apply, in this case. Thanks for the 
> > fast answer. 
> > 
> > Cheers 
> > On Wednesday, 25 February 2015 15:15:50 UTC+1, LinuxDan wrote: 
> > 
> >     More detail is needed to answer the question. 
> > 
> >     Here are (I hope) some helpful suggestions: 
> > 
> >     The data you list is a hash. 
> >     How does one get the first "element" from a hash ? 
> > 
> >     In what context are you trying to access the information ?  Manifest 
> >     ?  Template ?  No in Puppet at all ? 
> > 
> >     One thing that caught my eye: The top-mose key of the hash is "node" 
> >     while the template code says "nodes".  That could be the problem. 
> > 
> >     “Sometimes I think the surest sign that intelligent life exists 
> elsewhere in the universe is that none of it has tried to contact us.” 
>  (Bill Waterson: Calvin & Hobbes) 
> > 
> > 
> >     On Feb 25, 2015, at 08:52 AM, Fran Rodríguez <[email protected] 
> >     <javascript:>> wrote: 
> > 
> >>     Hi group, 
> >> 
> >>     Im trying to get one element from a yaml structure which come from 
> >>     Foreman, the yaml is like this: 
> >> 
> >>     node : 
> >>        host1 : 
> >>           ip : xxx . xxx . xxx 
> >>        host2 : 
> >>           ip : xxx . xxx . xxx 
> >> 
> >> 
> >>     Those parameter are used to in a template: 
> >> 
> >>     <%= @nodes [ 0 ][ name ] %> IPaddr2:: <%= @nodes [ 0 ][ 'ip' ] %>/ 
> >>     <%= @nodes [ 0 ][ 'cidr' ] %>/ <%= @nodes [ 0 ][ 'interface' ] - %> 
> > 
> >> 
> >>     The question is that i only need the first parameter, i tried some 
> >>     ways to do it but without any luck, so if someone could put me on 
> >>     the correct way or tell me what i would have to do..... 
> >> 
> >>     Thanks. 
> >> 
> >> 
> >>     -- 
> >>     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 [email protected] <javascript:>. 
> >>     To view this discussion on the web visit 
> >>     https://groups.google.
> .com/d/msgid/puppet-users/13ed1412-5807-424e-971e-284e588411c7%
> 40googlegroups.com 
> >>     <
> https://groups.google.com/d/msgid/puppet-users/13ed1412-5807-424e-971e-284e588411c7%40googlegroups.com?utm_medium=email&utm_source=footer>.
>  
>
> >>     For more options, visit https://groups.google.com/d/optout 
> >>     <https://groups.google.com/d/optout>. 
> > 
> > -- 
> > 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 [email protected] <javascript:> 
> > <mailto:[email protected] <javascript:>>. 
> > To view this discussion on the web visit 
> > 
> https://groups.google.com/d/msgid/puppet-users/c9398100-1076-4f40-bf2c-bc0378008534%40googlegroups.com
>  
> > <
> https://groups.google.com/d/msgid/puppet-users/c9398100-1076-4f40-bf2c-bc0378008534%40googlegroups..com?utm_medium=email&utm_source=footer>.
>  
>
> > For more options, visit https://groups.google.com/d/optout. 
>
>
> -- 
>
> Visit my Blog "Puppet on the Edge" 
> http://puppet-on-the-edge.blogspot.se/ 
>
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/cdba2628-69a2-43ab-a45d-6c1c5626c522%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to