2015-02-24 67 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" 
    } 
} 

正如读者已经注意到的,这导致Puppet结束时出现DuplicateFile错误。

什么是最简单的解决这里,它涉及重写/重构foo或加入这里机械显著?

木偶版本2.7.9

+0

我不知道我跟随。 'foo'和'foo-specialized'都不能同时管理具有相同文件系统路径的文件。 – ptierno 2015-02-24 21:31:20

+0

@ptierno - 我的目标是我希望'foo-specialized'能够接管这个文件的管理,采用传统的OO专业化方法 – 2015-02-24 21:33:50

+0

,这种情况不会发生。 'file'资源'namevar'是文件的'路径'。 'namevar'必须是唯一的。 – ptierno 2015-02-24 21:41:09

回答

2

Puppet inheritance救援:

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

这个!但不要在类名中使用破折号。 – 2015-02-25 14:20:24