Puppet 安装多个软件包导致 Package[undef] 错误

Puppet 安装多个软件包导致 Package[undef] 错误

当我尝试同时安装多个软件包时,Puppet 代理上出现以下错误:

err: /Stage[main]/Template::Infrastructure/Package[undef]/ensure: change from absent to present failed: Execution of '/usr/bin/yum -d 0 -e 0 -y install undef' returned 1: Error: Nothing to do

产生错误的代码是:

$软件包 = [ 'qemu-kvm', 'qemu-kvm-tools', 'drbd84-tools', 'kmod-drbd84' ]
包裹 {
  $::包:
    确保 => '已安装',
    需要 => 类['yumrepos::elrepo']
}

这个问题是间歇性的。有没有更好的方法可以一次安装多个包,而不必为每个包设置包资源?

答案1

使用它$::packages明确表明您希望在任何类之外的顶级作用域中查找变量。由于您似乎是在类内定义它,因此这行不通。

只需使用package { $packages:package { $classname::packages:代替。

相关内容