Использование duritong/puppet-shorewall с Puppet и Hiera не работает должным образом.

Я пытаюсь использовать этот модуль здесь с puppet: https://github.com/duritong/puppet-shorewall< /а>

Следуя примеру, я получил правила, работающие

node xy {
    class{'config::site_shorewall':
      startup => "0"  # create shorewall ruleset but don't startup
  }
    shorewall::rule {
        'incoming-ssh': source => 'all', destination => '$FW',  action  => 'SSH(ACCEPT)', order => 200;
        'incoming-puppetmaster': source => 'all', destination => '$FW',  action  => 'Puppetmaster(ACCEPT)', order => 300;
        'incoming-imap': source => 'all', destination => '$FW',  action  => 'IMAP(ACCEPT)', order => 300;
        'incoming-smtp': source => 'all', destination => '$FW',  action  => 'SMTP(ACCEPT)', order => 300;
    }
}

Теперь я хочу упаковать это в hiera. С помощью некоторых исследований я нашел здесь это объяснение того, как преобразовать различные переменные в хэши hiera: http://puppetlunch.com/puppet/hiera.html

Теперь, когда исходный пример конвертируется в hiera, он должен выглядеть так, если я не ошибаюсь (в hiera всего 2 примера):

---                                                                                                                    
classes:
  - shorewall

shorewall::rule:
    incoming-ssh:
        source:   'all'
        destination: '$FW'
        action:   'SSH(ACCEPT)'
        order:    '200'
    incoming-puppetmaster:
        source:     'all'
        destination:    '$FW'
        action:     'Puppetmaster(ACCEPT)'
        order:      200

В чем может быть проблема, что нет данных кроме шапки и футера в конфиг файлах?

кот /etc/shorewall/puppet/rules

#
# Shorewall version 3.4 - Rules File
#
# For information on the settings in this file, type "man shorewall-rules"
#
# See http://shorewall.net/Documentation.htm#Rules for additional information.
#
#############################################################################################################
#ACTION SOURCE          DEST            PROTO   DEST    SOURCE          ORIGINAL        RATE            USER/   MARK
#                                               PORT    PORT(S)         DEST            LIMIT           GROUP
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

person syss    schedule 25.02.2015    source источник


Ответы (1)


Моделирование ресурсов в Hiera — это только полдела. Вы должны поручить Puppet преобразовать эти данные обратно в фактические ресурсы.

$data = hiera('shorewall::rule', {})
create_resources('shorewall::rule', $data)

Ключом является функция create_resources.

Вы не должны использовать shorewall::rule в качестве имени вашего ключа Hiera, это вводит в заблуждение. Используйте имя, которое не похоже на реальный синтаксис, например.

shorewall_rules:
    incoming-ssh:
       ...

И в манифесте

$data = hiera('shorewall_rules', {})
person Felix Frank    schedule 25.02.2015