【发布时间】:2018-11-02 21:53:36
【问题描述】:
我正在尝试设置一个简单的 puppet 类来循环遍历一组哈希,每个哈希都包含一个 yum 存储库的配置。我使用的是 Puppet 3.8.2 版本,这意味着无法使用 .each 函数。
目前我的 puppet 代码如下所示:
class ::yum_repos {
$repos = [
{
'name' => 'test_repo1',
'base_url' => 'example1.com',
'ensure' => 'present',
'gpgcheck' => 'true',
},
{
'name' => 'test_repo2',
'base_url' => 'example2.com',
'ensure' => 'present',
'gpgcheck' => 'true',
},
]
define add_repo {
yumrepo { $name:
ensure => $ensure,
name => $name,
baseurl => $base_url,
gpgcheck => $gpgcheck,
enabled => 'true',
}
}
add_repo { $repos: }
}
不幸的是,这引发了以下错误:
Error: Could not retrieve catalog from remote server: Could not intern from text/pson: Could not intern from data: Could not find relationship source "::yum_repos::Add_repo[nametest_repo2ensurepresentgpgchecktruebase_urlexample2.com]"
有人能解释一下正确的方法吗?
提前非常感谢!
【问题讨论】:
-
未来的解析器可以使用 3.8.2 中的 .each。另外,如果你确定要使用旧版本的 Puppet,那么为了安全和稳定,你至少应该更新到最新的补丁版本。如果您不想使用未来的解析器,那么您想要实现的内容将在此处记录有关用法:puppet.com/docs/puppet/3.8/function.html#createresources。告诉我们您想要的路线。
-
感谢您的快速回复。我将尝试使用您提供的有关 create_resources 使用的文档。如果有效,则将其作为答案弹出,我会将其标记为已解决。我会回复你的!
-
您对文档的引用正是我需要的答案,感谢您的帮助!如果您将其作为答案提交,我可以通过您的修复将问题标记为已解决。