I'm passing a hash to a define like so:
nodes.pp
net::addr { 'routes':
ipr => {
ipr1 => {
address => '192.168.34.38',
netmask => '255.255.255.0',
gateway => '192.168.34.1',
dev => 'eth3',
},
ipr22 => {
address => '10.1.5.33',
netmask => '255.255.255.0',
gateway => '10.1.5.1',
dev => 'eth2',
},
}
}
addr.pp
define net::addr (
$routes={},
)
{
if ($num != "") {
$iname=${routes[route${num}][dev]}
$num+1
}
else{
$num=0;
}
}
What I want to do is define a variable called iname and set it to the dev under each hash element, so on iteration 1 I want dev to be set to eth3, which corresponds to the "ipr1" element, on the next iteration I was iname set to eth2 and so on.
I'm struggling to do this as everytime my num variable keeps getting undefined and then ends up being set to 0, can someone please suggest a way round this or a more intelligent solution?