我正在编写一些木偶模块,并在两个模块中定义了一个包,因此会出现以下错误:
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
Run Code Online (Sandbox Code Playgroud)
因此,要确保尚未定义包但以下方法不起作用:
if ! defined ('gnome-session-fallback') {
package { 'gnome-session-fallback':
ensure => installed,
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议如何解决这个问题,并在更广泛的范围内,什么是"适当的"方法来避免模块中的这种冲突?
Ger*_*osi 46
你在Define()中缺少Package [].正确的方法:
if ! defined(Package['gnome-session-fallback']) {
package { 'gnome-session-fallback':
ensure => installed,
}
}
Run Code Online (Sandbox Code Playgroud)
小智 13
最简洁的方法是使用puppetlabs-stdlib中的ensure_resource函数:
ensure_resource('package', 'gnome-session-fallback', {'ensure' => 'present'})
| 归档时间: |
|
| 查看次数: |
28817 次 |
| 最近记录: |