如何正确安装与木偶的仓库

问题描述 投票:0回答:1

我挣扎安装与木偶的存储库,特别是ZABBIX库。我从here得到了ZABBIX库为CentOS 7,并使用下面的是:

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回购协议在木偶的工作,这样我可以安装ZABBIX代理?

linux centos repository puppet zabbix
1个回答
3
投票

你必须始终记住,木偶的DSL集中在机器状态信息忍受被管理,改变机器状态的不是细节。这将帮助你避免误解the docs for the Yumrepo resource type

具体而言,该类型的属性baseurl直接对应于具有相同名称的每个存储库荫配置参数。该参数指定库的基础URL(所以大概http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/你的情况)不是一个包的名称以安装获得回购定义。

如果你喜欢,你可以做不带包干脆,而是严格通过Yumrepo资源配置的存储库。如果你想通过封装至少部分地管理它,但是,那么你有一个鸡肉和蛋的问题:你在哪里得到的包,以创建包含软件包回购回购的定义?主要有两种备选方案:

  • 执行存储库的初始配置作为供应过程的一部分,木偶的范围之外,通过手动安装包。您可以随后两个调整回购配置,并通过木偶更新资源库释放包。
  • 把仓库释放包拷贝到自己的本地包回购(你有一个,不是吗?)。配置为你喜欢的回购,使木偶从那里安装回购发行版本的软件包。

无论哪种方式,如果你管理通过木偶都发布包和回购的细节,则该部分看起来是这样的:

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
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.