我正在寫一些傀儡模塊,並具有在兩個模塊中定義的包,因此得到以下錯誤:Puppet - 測試包是否已經定義?
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Duplicate definition: Package[gnome-session-fallback] is already defined in file /etc/puppet/modules/vnc4server/manifests/init.pp at line 3; cannot redefine at /etc/puppet/modules/vino/manifests/init.pp:7 on node l
因此,要確保程序包尚未確定,但下面不工作:
if ! defined ('gnome-session-fallback') {
package { 'gnome-session-fallback':
ensure => installed,
}
}
任何人都可以提出如何解決這個問題,在更廣泛的範圍內,什麼是「適當」的方法來避免這種模塊中的衝突?
請張貼究竟如何,這並不工作。你是否收到錯誤消息,或者它只是簡單地做了它應該做的事情?還請包括你正在使用哪個版本的Puppet! – ppeterka 2013-03-07 08:35:34
發佈在上面第二行的錯誤消息 - 我正在測試它是否已經在另一個模塊中定義,並且測試似乎沒有檢測到這一點,因此試圖重新定義它,並且代理程序運行失敗(請參閱err)。版本2.7.11 – 2013-03-07 08:44:48
也許今天我有點沉悶:所以你得到'如果!定義......腳本,對吧? – ppeterka 2013-03-07 08:47:04