Estou trabalhando para tornar a nossa infraestrutura de bonecos mais dinâmica, onde posso adicionar qualquer número de nós e estes serão aplicados automaticamente em outra configuração de nós.
Um exemplo:
Eu tenho um número X de hosts executando um aplicativo Java, que são definidos pelo nosso módulo javaapp com o seguinte define nele (simplificado):
define javaapp::site (
$site_name,
$site_port ) {
# Doing some stuff regarding deployment, service management etc here
}
Estes são definidos no arquivo site.pp assim:
javaapp::site { 'app01':
play_site_name => 'app01',
play_site_port => 9100,
}
Temos um proxy reverso nginx na frente desses servidores de aplicativos, no qual preciso encaminhar solicitações para um intervalo de servidores. Atualmente, meu modelo nginx tem esta aparência:
upstream app-hosts {
server <%= @host_app_01 %>:9100;
server <%= @host_app_02 %>:9100;
}
Onde @ host_app_01 e @ host_app_02 foram definidos globalmente no arquivo site.pp
O que eu gostaria de fazer é coletar uma matriz dos nós com um nome de site javaapp específico e usá-lo no modelo nginx. Algo parecido com este pseudo-código:
upstream app-hosts {
<% @host_app.each do |host| %>
server <%= @host.ip %>:<%= @host.appPort %>;
<% end %>
}
Eu li um pouco sobre os recursos exportados, mas não consigo descobrir se é a coisa certa para essa situação?
É possível fazer com fantoche?
Estamos executando a versão fantoche 3.7.5.