Modelo de marionete, se definida sintaxe

1

Estou com dificuldades para encontrar uma solução nos documentos do Puppet. Eu estou tentando definir uma variável no modelo de marionete. Por exemplo:

Se class graylog2 e apache estiverem definidos na seção de classe do nó, o modelo colocará essas variáveis no arquivo de configuração:

# Apache logging
local5.* @<%= @server_gl -%>:<%= @service_port_gl -%> <- This part has to inserted if defined graylog2 class and apache class in node file
local5.info ~
local5.err ~

# Nginx logging
local4.* @<%= @server_gl -%>:<%= @service_port_gl -%> <- This part has to be inserted if defined graylog2 class and apache class in node file
local4.info ~
local4.err ~

Exemplo:

if defined (Class['apache', 'graylog2'])
    # Nginx logging
    local4.* @<%= @server_gl -%>:<%= @service_port_gl -%>
    local4.info ~
    local4.err 
else
    # Nginx logging
    local4.info ~
    local4.err

Não tenho 100% de certeza, mas acho que a versão de exemplo não funcionaria. Além disso, como eu poderia obter @server_gl de graylog2 module para que ele não precise ser definido em syslog module .

    
por mYzk 02.10.2014 / 11:36

1 resposta

1

Solução:

# Apache logging
<% if classes.include?("httpd") %>
local5.* @<%= scope.function_hiera(["ls_gelf_host"]) %>:<%= @service_port -%> 
local5.info ~
local5.err ~
<% else %>
local5.info ~
local5.err ~
<% end %>

# Nginx logging
<% if classes.include?("nginx") %>
local4.* @<%= scope.function_hiera(["ls_gelf_host"]) %>:<%= @service_port -%> 
local4.info ~
local4.err ~
<% else %>
local4.info ~
local4.err ~
<% end %>
    
por 02.10.2014 / 15:12

Tags