On Tue, Aug 23, 2011 at 06:21:48AM -0700, jcbollinger wrote: > > > On Aug 22, 8:11 am, puppetlurker <under.my.cont...@gmail.com> wrote: > > Greetings, > > > > I'm having an issue with my implementation of exported resources. I > > have a memcache server pool, and want to update the /etc/php.d/ > > memcache.ini with the ips of all the servers. Previously, I hard coded > > the $memcacheservers array in the node manifest and the template > > collected and populated the template. > > > > Now that I'm moving to exported resouces, how do I get it to set an > > array in a way I can access it from a different scope? I tried moving > > the file { "/etc/php.d/memcache.ini": content => template(memcache/ > > memcache.ini.erb) to the resource function (I understand exported > > resources shoulld not define other resources), but it only populates > > the first server collected, and complains about a duplicate resource > > if I have more than 1 exported server. > > > > I've tried defining the resource without the content the first time, > > then override the define with the content, but that only picks up the > > 2nd server. I've tried accessing the variable that gets populated > > after the Memcache::Servers <<| |>> but it doesn't get populated in > > this scope. I've tried looking up the > > scope.lookupvar('memcached::servers::memcacheservers') but the > > exported resource is a define not a class and I couldn't get it to > > work. I've tried just using a script to populate the file with the > > proper contents, but there is no way to ensure it is filled with all > > the servers, for example the script is executed out of order, > > replaced 3 times if there are 3 servers, and may contain 1, 2, or 3 > > servers after a puppet run. > > > > Any suggestions? > > > The way to do this with exported resources is for each node to export > a resource containing its own information only. The trick is choosing > the resource to use for this. > > The simplest case would be if "/etc/php.d/memcache.ini" supports some > kind of 'include' directive, especially if it understands globs. Then > each server can export its own (distinctly-named) file intended for > inclusion, and the node(s) that collect them need only to put the > appropriate 'include' directive(s) into the main memcache.ini.
So you can't do this with your own defines as the resource? I have various define calls like this: users::normal { bob: id => 107, email => 'b...@bob.com' } What I'm looking to do is collect all the emails into an array or something so I can use them in a template. I thought maybe I could make a define that does an array append or something? It sounds from what people are saying like there really isn't a reasonable way to do this yet? -Robin -- http://singinst.org/ : Our last, best hope for a fantastic future. Lojban (http://www.lojban.org/): The language in which "this parrot is dead" is "ti poi spitaki cu morsi", but "this sentence is false" is "na nei". My personal page: http://www.digitalkingdom.org/rlp/ -- 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 puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.