Hi Gareth, I'd be interested on your feedback with a gem that we at BGCH have just released: bgch-hiera-consul. It's on rubygems.
It's derived from lynxman's hiera-consul, but the behaviour is different. It permits storing yaml and/or json as a value and parses it for hiera variables. Hope you like it! Justin. On Tuesday, 19 January 2016 12:39:11 UTC, garethr wrote: > > On 19 January 2016 at 11:34, Lowe Schmidt <[email protected] > <javascript:>> wrote: > > Exported resources would accomplish what you are trying to do, as long > as > > you don't often and rapidly remove and add upstream app-hosts. > > > > If you find you do want to change things more rapidly, integrating > with a service discovery mechanism is a nice approach. > > This repo, and accompanying presentation I gave last year demonstrate > using Consul, along with the Consul module and Hiera backend to > accomplish dynamic changes to configuration of an nginx upstream. The > demo uses Puppet Enterprise but the approach is general purpose, and > the modules are all open source and from the wider Puppet community. > > https://github.com/puppetlabs/puppet-enterprise-consul-docker-demo > > https://speakerdeck.com/garethr/service-discovery-and-configuration-management > > > The key trick is to use some sort of watcher (in my case the build-in > consul watcher setup using the ::consul::watch Puppet type) to detect > changes across the cluster as they happen and to run Puppet to update > the proxy straight away. > > Gareth > > > > -- > > Lowe Schmidt | +46 723 867 157 > > > > On 18 January 2016 at 14:29, Frederik Bjerggaard Nielsen < > [email protected] <javascript:>> > > wrote: > >> > >> Hi, > >> > >> I am working on making our puppet infrastructure more dynamic where I > can > >> add any number of nodes and these will automatically be applied in > another > >> nodes configuration. > >> > >> An example: > >> I have X number of hosts running a Java application, which are defined > by > >> our javaapp module with the following define in it (simplified): > >> > >> define javaapp::site ( > >> $site_name, > >> $site_port ) { > >> # Doing some stuff regarding deployment etc here > >> } > >> > >> These are defined in the site.pp file like this: > >> > >> javaapp::site { 'app01': > >> play_site_name => 'app01', > >> play_site_port => 9100, > >> } > >> > >> We have a nginx reverse proxy in front of these application servers > where > >> I need to forward requests to a range of servers. Currently my nginx > >> template looks like this: > >> > >> upstream app-hosts { > >> server <%= @host_app_01 %>:9100; > >> server <%= @host_app_02 %>:9100; > >> } > >> > >> Where @host_app_01 and @host_app_02 have been defined globally in the > >> site.pp file with the IP of the nodes. > >> > >> What I would like to do is to collect an array of the nodes with a > >> specific javaapp site name and use it in the nginx template. > >> > >> I have read a little about exported resources, but I can't figure out > >> whether it is the right thing for this situation? > >> > >> Is it even possible to do with puppet? > >> > >> We are running puppet version 3.7.5. > >> > >> Thanks in advance. > >> > >> Regards > >> Frederik Nielsen > >> > >> -- > >> 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] <javascript:>. > >> To view this discussion on the web visit > >> > https://groups.google.com/d/msgid/puppet-users/a3bcb7c2-f8bb-4b4b-a901-a328662e2266%40googlegroups.com. > > > >> For more options, visit https://groups.google.com/d/optout. > > > > > > -- > > 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] <javascript:>. > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/puppet-users/CAC-wWcQTTqcZe1x3rfswQmTyV1pzMKNcMSFe5RHNZtCB43Q8pw%40mail.gmail.com. > > > > > > For more options, visit https://groups.google.com/d/optout. > > > > -- > Gareth Rushgrove > @garethr > > devopsweekly.com > morethanseven.net > garethrushgrove.com > -- 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/01c0d4a6-8db4-4ece-929c-c5e679147279%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
