【发布时间】:2013-05-11 13:36:35
【问题描述】:
我是 puppet 的新手,我很困惑。
我正在安装 gcc、gcc-c++、openssl 和 openssl-devel。
在显示的代码中,$openssl_devel 有效,但 $c_plus 未定义。
为什么 puppet 将 $c_plus 设置为 'undef' ?
Cent OS 6
class torque::prerequisites {
case $operatingsystem {
centos,redhat: {$openssl_devel = 'openssl-devel'}
centos,redhat: {$c_plus = 'gcc-c++'}
debian,ubuntu: {$openssl_devel = 'libssl-dev'}
debian,ubuntu: {$c_plus = 'build-essential'}
default:{fail("Unable identify opperating system. $operatingsytem not recognized") }
}
package {'openssl':
ensure => latest,
}
package {$openssl_devel:
ensure => latest,
require => Package['openssl'],
}
package {'gcc':
ensure => installed,
}
package {$c_plus:
ensure => installed,
require => Package['gcc'],
}
}
class {'torque::prerequisites':}
傀儡应用扭矩_先决条件
错误:/Stage[main]/Torque::Prerequisites/Package[undef]/ensure:从不存在更改为存在失败:找不到包 undef
【问题讨论】:
-
每组操作系统有两个案例。它会找到第一个,执行它,然后停止。您应该将
$openssl_devel和$c_plus声明放在同一组花括号中。就像您在下面的答案中所做的那样。
标签: puppet