Edição do arquivo de configuração da linguagem Puppet

2

Estou tentando criar uma receita de fantoches para um servidor de log e cliente usando o syslog-ng. Eu sei que posso ter arquivos de configuração personalizados usando arquivos erb de modelo e substituir certas variáveis nos arquivos erb. Eu também sei que o recurso file apenas substitui os arquivos da fonte ou do modelo.

No entanto, meu problema é que cada cliente terá requisitos diferentes e um número diferente de arquivos a serem redirecionados e a maioria dos clientes não usa APIs syslog para registrar suas informações, portanto, preciso especificar os nomes dos arquivos para cada aplicativo em cada cliente e consequentemente tem que continuar adicionando coisas ao arquivo conf do servidor também.

Eu não encontrei nenhum tipo de funcionalidade de loop no fantoche que pudesse me ajudar a gerar ou adicionar informações em um arquivo syslog-ng.conf existente. Tudo o que vejo é que o recurso file substituirá o existente, a menos que eu faça algo inteligente usando exec .

    
por chandank 22.10.2012 / 19:03

2 respostas

1

Você pode tentar criar um modelo com algumas variáveis, como

source s_<%= localhost_name%> {
tcp(ip(0.0.0.0)
port(<%= log_port%>));
};

template t_<%= localhost_name%> {
template ("$MSGHDR$MSG\n");
template_escape(no);
};

destination d_<%= localhost_name%>  {
file("<%= log_file%>" template(t_<%= localhost_name%>));
};

log {
source(s_<%= localhost_name%>);
destination(d_<%= localhost_name%>);
};

Isso gerará um arquivo que escutará todo o endereço TCP na porta do syslog e filtrará as mensagens de acordo.

    
por 07.08.2013 / 20:02
2

Nesse caso, você deve olhar atentamente para o arquivo de configuração em questão e ver se ele suporta algum tipo de diretório de inclusão. Isso é você pode colocar arquivos de configuração em um subdiretório e instruir o programa principal para incluí-lo. Dessa forma, cada subsistema pode simplesmente adicionar os fragmentos de configuração conforme necessário. Syslog-ng faz parece suportar este tipo de configuração.

Se isso não estiver embutido no aplicativo em questão, use o padrão de concatenação onde você basicamente tem o fantoche para montar a configuração no lado do cliente a partir de um monte de fragmentos de configuração.

    
por 22.10.2012 / 19:13