当我尝试同时安装多个软件包时,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:
代替。