2015-02-24 74 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