A melhor maneira de obter uma lista de nós dentro do modelo Puppet

1

Qual é a maneira recomendada de obter uma lista de todos os nós de dentro de um modelo de marionete?

Digamos que eu tenha um balanceador de carga executando o Nginx. Dentro do modelo, quero gerar uma lista de servidores de backend. Por uma questão de simplicidade, digamos que esses servidores de aplicativos tenham um nome de host que corresponda a 'appserver *'.

Atualmente, defino uma matriz dentro de site.pp com cada servidor de aplicativos e uso isso da seguinte maneira:

upstream www.foobar.com {
  <% appservers.each do |val| -%>
  server <%= val %>:80;
  <% end -%>
}

Gostaria de acabar com esse array definido manualmente e, em vez disso, consultar o Puppet.

    
por vpetersson 07.02.2013 / 20:40

1 resposta

1

Eu não acho que haja uma maneira recomendada. Depende da sua configuração, eu acho.

Existem várias maneiras de conseguir isso. Você pode usar recursos exportados e consultar puppetDB .

O método que eu prefiro, porque eu já estou usando o Foreman, é usar foremans paraser função para obter a lista de nós do capataz.

Então, no seu manifesto, você pode fazer algo como:

$appservers = foreman("hosts", 'hostgroup = appservers')

Supondo que seus servidores de aplicativos estejam em 'appservers' de chamadas do grupo de hosts Foremans. Aqui é uma postagem no blog que explica isso.

Outra forma seria armazenar sua lista de 'appserver' em um arquivo de texto ou banco de dados e, em seguida, gravar sua própria função para recuperar a lista. Como você pode ver, escrever uma função de analisador é fácil.

Outra maneira é usar Hiera .

    
por 08.02.2013 / 06:39

Tags