Ellison,

Brilliant!  Worked like a champ.  This opens whole new worlds and should 
make managing the config *much* easier!!!

Greg



On Friday, September 27, 2013 12:13:03 PM UTC-7, Ellison Marks wrote:
>
> Perhaps make it a defined type and use the create resources function. I 
> can't really think of any other way to correctly scope the various 
> parameters. You'd have to tweak your yaml slightly...
>
> ---
> #icecast
> type: vanilla
>
>           icecast_clients: 
>
>   client1:
>     cid: 999
>     cid_hostname: icecast1
>     cid_ipaddress: 192.168.254.12
>     password: WhatYoSay?
>     port: 200
>     concurrency: 50
>     num_encoders: 2
>   client2:
>     cid: 998
>     cid_hostname: icecast2
>     cid_ipaddress: 192.168.254.13
>     password: NoWay!
>     port: 201
>     concurrency: 25
>     num_encoders: 3
>
>
>
> define icecast_client($cid, $cid_hostname, $cid_ipaddress, $password, 
> $port, $concurrency, num_encoders) {
>   file { "/home/icecast/${cid}.icecast.xml":
>     ensure => file,
>     content => template('icecast/icecast.xml.erb'),
>   }
> }
>
> $icecast_clients = hiera('icecast_clients')
> create_resources(icecast_client, $icecast_clients)
>
> You could use hiera_hash if you wanted to merge multiple levels of your 
> hierarchy.
> You could also use the cid in place of client1, client2, etc, then you 
> could remove the $cid parameter in the defined type and just use $title.
>
> On Friday, September 27, 2013 11:52:09 AM UTC-7, Greg Coit wrote:
>>
>> Hi all,
>>
>> I've started testing with using Hiera for storing configs and I have a 
>> noobish question.
>>
>> Here's an example of my yaml file (/etc/puppet/hieradata/vertname.yaml):
>>
>> ---
>> #icecast
>> type: vanilla
>> client1:
>>   cid: 999
>>   cid_hostname: icecast1
>>   cid_ipaddress: 192.168.254.12
>>   password: WhatYoSay?
>>   port: 200
>>   concurrency: 50
>>   num_encoders: 2
>> client2:
>>   cid: 998
>>   cid_hostname: icecast2
>>   cid_ipaddress: 192.168.254.13
>>   password: NoWay!
>>   port: 201
>>   concurrency: 25
>>   num_encoders: 3
>>
>>
>> Now, I'd like to be able to create a config file for each client:
>>
>> file { '/home/icecast/${cid}.icecast.xml':
>>   ensure  => file
>>   content => template('icecast/icecast.xml.erb'),
>> }
>>
>>
>> The question is how do I put the above into a loop which iterates over 
>> the client arrays in the hiera file (each client config file should get a 
>> unique cid, cid_hostname, etc)?
>>
>> Thanks in advance!!
>>
>> Greg
>>
>>
>>

-- 
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+unsubscr...@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.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to