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