I think I kind of get what you are saying, and I was going to do some ugly 
if loops in my modules, but that was the second option. I was wondering if 
there is a more elegant solution.

Thanks for taking the time to answer.



On Tuesday, December 3, 2013 12:25:20 AM UTC+11, Matthias Saou wrote:
>
> On Sun, 1 Dec 2013 20:58:34 -0800 (PST) 
> Shiva Narayanaswamy <[email protected] <javascript:>> wrote: 
>
> > I want to implement a scenario where I can mix and match multiple 
> > roles on any managed node. The particular roles played by a node are 
> > available as facts (role1=webserver, role2=appserver etc )In 
> > development all the roles will be played by one host, and in 
> > production a server might play only one role. 
> > 
> > I was hoping there will be some way I can implement this in hiera. 
> > Any clues or pointers would be much appreciated. 
>
> I've already had to do something similar, and did it the following way : 
>
>  * A single "role=" fact/variable. 
>  * Conditionals such as "if "<rolename>" in $role { ..." 
>
> It's not the prettiest way, but since facts can't be arrays, it's the 
> best I could think of. My role names are all 3 letter long and unique, 
> meaning that no role name contains another (role "app" and "app1" 
> would cause "app" to be found in "app1). 
>
> In hiera (or from a fact) I just need to have a role string : 
>
> role: 'role1,role2,role3' 
>
> Depending on your environment, it might also make sense to go for 
> completely separate variables for each role, such as: 
>
> webserver: true 
> appserver: true 
>
> With matching facts which exist or don't exist. 
>
> HTH, 
> Matthias 
>
> -- 
>             Matthias Saou                  ██          ██ 
>                                              ██      ██ 
> Web: http://matthias.saou.eu/              ██████████████ 
> Mail/XMPP:  [email protected] <javascript:>             ████  ██████  ████ 
>                                        ██████████████████████ 
> GPG: 4096R/E755CC63                    ██  ██████████████  ██ 
>      8D91 7E2E F048 9C9C 46AF          ██  ██          ██  ██ 
>      21A9 7A51 7B82 E755 CC63                ████  ████ 
>

-- 
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/fb9bc483-c774-4c71-8d31-0fddfbf490de%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to