我正在尝试定义一个类型来创建 yum repos。我希望能够从 common.yaml 中提取数据,并让此定义提取该数据并对其采取行动。我还没有走到那一步,并且我收到了无效参数的错误。我的代码是这样的。
define xh_yumrepo::create_xh_yumrepo (
$descr = '',
$baseurl = $baseurl,
$enabled = $enabled,
$gpgcheck = $gpgcheck,
){
$ensure = 'present'
notify{"title is $title":}
yumrepo { $title:
baseurl => $baseurl,
ensure => present,
descr => $descr,
enabled => $enabled,
gpgcheck => $gpgcheck,
}
}
class xh_system::xh_yumrepo (
$yumrepo=hiera_hash('xh_yumrepo', undef),
){
$os=$yumrepo[$operatingsystem]
$rel=$os[$operatingsystemmajrelease]
notify {"$rel":}
create_resources("@xh_yumrepo::create_xh_yumrepo",$rel)
Xh_yumrepo::Create_xh_yumrepo <| |>
}
数据是这样的
CentOS:
"6":
epel-6:
descr: EPEL mirror for RHEL/CentOS 6.x 86_64
baseurl: http://repo.example.com:8080/epel/x86_64/6
enabled: 1
gpgcheck: 0
每次运行时,参数确保
错误:无法从远程服务器检索目录:服务器上的错误 400:节点 qa-test.example.com 上的 /app/copa/puppet/conf/environments/qa/modules/xh_system/manifests/xh_yumrepo.pp:17 处的参数无效
对 Ensure 参数进行硬编码或在 Common.yaml 中定义它会产生相同的错误。根据输入 yumrepo这是一个有效参数。由于该参数有效,我不知道导致错误的原因是什么,因此注释掉这些行以确保 puppet 脚本能够正常工作。
答案1
ensure
Puppet 3.5.1 之前不支持for参数yumrepo
。即使在 3.5.0 中也存在多个问题。请参阅此票。