我很难用Puppet安装一个存储库,特别是zabbix存储库。我从CentOS 7中获得了这里的zabbix存储库,并使用了以下内容:
http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm我尝试使用下面的木偶代码在我的节点上安装它,但它似乎不起作用:
node 'puppet-agent' {
include importRepos
package { 'php':
ensure => "installed",
}
package { 'zabbix-agent':
ensure => "installed",
}
}
class importRepos {
yumrepo { "zabbix":
baseurl => "http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm",
descr => "Zabbix repo to install Zabbix client on CentOS 7",
enabled => 1,
gpgcheck => 1
}
}我得到的错误是:
...
Execution of '/usr/bin/yum -d 0 -e 0 -y install zabbix-agent' returned 1: Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
Error downloading packages:
zabbix-agent-3.4.15-1.el7.x86_64: [Errno 256] No more mirrors to try.我试着安装deltarpm包,现在我得到了以下错误:
...
Error downloading packages:
zabbix-agent-3.4.15-1.el7.x86_64: [Errno 256] No more mirrors to try.
Error: /Stage[main]/Main/Node[puppet-agent]/Package[zabbix-agent]/ensure: change from purged to present failed: Execution of '/usr/bin/yum -d 0 -e 0 -y install zabbix-agent' returned 1: No Presto metadata available for zabbix
Error downloading packages:
zabbix-agent-3.4.15-1.el7.x86_64: [Errno 256] No more mirrors to try.然后我做了一个彻底的清理,然后再试一次,现在我得到了这个错误:
Error: Execution of '/usr/bin/yum -d 0 -e 0 -y install zabbix-agent' returned 1: One of the configured repositories failed (Zabbix repo to install Zabbix client on CentOS 7),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:它建议我禁用回购,所以我不确定我犯了什么错误,但由于某些原因,基于我如何配置it.Does,似乎没有人知道我如何让zabbix回购在Puppet中工作,这样我就可以安装zabbix代理了?
发布于 2019-02-06 20:28:01
您必须始终记住,木偶的DSL专注于要管理的机器状态细节,而不是更改机器状态的细节。这将有助于您避免误解Yumrepo资源类型的文档。
具体来说,该类型的baseurl属性直接对应于同名的每个存储库Yum配置参数。该参数指定存储库的基本URL (在您的例子中可能是http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/ ),而不是要安装以获得回购定义的包的名称。
如果您愿意,您可以完全不用包,而是严格地通过Yumrepo资源配置存储库。但是,如果您希望至少部分地通过包来管理它,那么您就会遇到一个鸡和蛋问题:您从哪里获得包,以便为包含包的回购定义创建一个回购定义?有两种主要的选择:
无论哪种方式,如果您通过Puppet管理发布包和回购细节,那么这个部分如下所示:
class importRepos {
package { 'zabbix-release' ensure => 'latest' }
yumrepo { "zabbix":
# Most repo properties probably should not be managed
enabled => 1,
}
}这样做之后,您可能还需要注意类和资源的排序。这是一个很大的主题,不能用一个这样的答案来回答,但是对于您的具体情况,考虑到您是直接在节点块中而不是通过类声明包,我的建议是声明相关包的属性之间的适当依赖关系:
node 'puppet-agent' {
include importRepos
package { 'php':
ensure => "installed",
}
package { 'zabbix-agent':
ensure => "installed",
require => Yumrepo['zabbix'], # <--- this
}
}https://stackoverflow.com/questions/54560364
复制相似问题