Марионеточный шаблон, если определенный синтаксис

Я испытываю затруднения при нахождении решения в Марионеточных документах. Я пытаюсь определить переменную в шаблоне Puppet. Например:

Если class graylog2 и apache определяются в разделе класса узла затем, шаблон помещает эти переменные в файл конфигурации:

# 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 ~

Пример:

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

Я не на 100% уверен, но я предполагаю, что версия в качестве примера не работала бы. Также, как я мог добраться @server_gl от graylog2 module таким образом, это не должно быть определено в syslog module.

1
задан 2 October 2014 в 12:36
1 ответ

Решение:

# 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 %>
1
ответ дан 4 December 2019 в 00:17

Теги

Похожие вопросы