我正在写一些傀儡模块,并具有在两个模块中定义的包,因此得到以下错误: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