I'd think a custom function with logic to parse a table would be easier to maintain.
Or, my new hammer for every nail, use external nodes and assign those variables in logic there. On Thu, Dec 4, 2008 at 1:37 AM, Stasheck <[EMAIL PROTECTED]>wrote: > > On Dec 3, 5:23 pm, "Evan Hisey" <[EMAIL PROTECTED]> wrote: > > On Wed, Dec 3, 2008 at 5:14 AM, Stasheck <[EMAIL PROTECTED]> > wrote: > > > > > Hi there, > > > > > As I don't like abstract talking, I'll make an example of what I need. > > > > > Let's say I have list of servers: A, B, C, D, E. > > > > > Now, every server should have a config file (let's give it a name of > > > "test.conf") in which it's primary and secondary backup is specified. > > > It should be maintained as a list of backups, like: > > > > > Cur Pri Sec > > > A B C > > > B A C > > > C B D > > > D A E > > > E D B > > > > > Perfect way would be to make associative table (ATable) and do sth > > > like: > > > Pri_back = ATable ($current_server, Pri) > > > Sec_back = ATable ($current_server, Sec) > > > > > and then use Ruby magic to put $Pri_back and $Sec_back into test.conf > > > file. > > > > > All of this, of course, in puppet modules ;-)... > > > > > Can somebody point me to an idea how to create sth like this? > > > > This sounds way complicated, this way. I suspect it would be simpler > > and safer to either use a template that you passed the servers to via > > variables or used the generate function to create the list on the fly > > from a master script on the server. > > > > If I get the setup correctly server A would have a file that listed > > servers B and C as backup, server B would have a file that list > > servers A and C, etc,etc. If this is correct the the simplest way > > would be to just have two variables defined in the Node definition for > > P_backup and S_backup. In your module just pass the variables to a > > template to create the file. > > > > Or Option 2, create a template with case logic that checks the node > > hostname and then assigns the correct backups to the template. I > > personally suspect the first choice is saner. > > > > Evan > > Yes, you got me right. All I want is to keep the list in one place, > independent of node definitions. What I didn't wrote is that A, B, C > and so on are about name of location the nodes are in, not the node > names itself - that explains why I don't want to keep it in node > definitions. > > As a solution, I can create rvalue function in Ruby and use it in > puppet, but I want to use only Puppet whenever I can. > > I guess I'll do sth like this: > > case $own_loc { > A: { > pri_back => "B"; > sec_back => "C"; > } > B: { > ..... > } > } > > As insane as it may seem ;-), I'll put it into separate file included > in site.pp and parsed for every node. > > Oh, and $own_loc is a custom fact already. > > Anyway, thanks :-) > > Stanislaw > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---