2015-02-24 3 views
1

У меня есть класс foo, который определяет файл flibbitfile.conf. Все хорошо.Переопределение дублирующегося файла в Puppet

Однако мне необходимо определить foo-specialized, который имеет свои уникальные и специальные flibbitfile.conf.

class foo-specialized { 
    include foo 
    file { "/etc/flibbitfile.conf" : 
     source => "puppet:///modules/foo-specialized/flibbitfile.conf" 
    } 
} 

Как заметил читатель, это приводит к ошибке DuplicateFile на конце Puppet.

Что такое Простейшие решения здесь делает не включать перезапись/рефакторинга foo или добавление значительной машины здесь?

кукольный версия 2.7.9

+0

Я не уверен, что я следую. И 'foo', и' foo-special' не могут управлять файлом с тем же путем файловой системы. – ptierno

+0

@ptierno - Моя цель состоит в том, что я хочу, чтобы «foo-specific» взял на себя управление этим файлом, в классическом подходе к специализации OO –

+0

, которого не произойдет. 'file' resources' namevar' - это «путь» к файлу. 'Namevar' должен быть уникальным. – ptierno

ответ

2

Puppet inheritance на помощь:

class foo-specialized inherits foo { 
    File["/etc/flibbitfile.conf"] { 
     source => "puppet:///modules/foo-specialized/flibbitfile.conf" 
    } 
} 
+0

Это! Но не используйте тире в именах классов. –

Смежные вопросы