【问题标题】:Error executing action `install` on resource 'yum_package[newrelic-repo]'在资源“yum_package [newrelic-repo]”上执行操作“安装”时出错
【发布时间】:2016-04-12 01:43:22
【问题描述】:

我尝试下载 newrelic-5-3.rpm 文件,然后尝试将软件包安装到我的厨师收据中。当我尝试运行 kitchen-verify

时出现以下异常
 Chef::Exceptions::Package
       -------------------------
       Package newrelic-repo not found: https://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm

我的食谱:

remote_file "newrelic.rpm" do
  source "https://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm"
  owner 'root'
  group 'root'
  mode  0755
end

package "newrelic-repo" do
  source "https://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm"
  action  :install
end

命令

yum -y install https://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm
yum -y install newrelic-sysmond

但是,当我尝试在 rhel-67 机器上以 root 用户身份单独运行命令时,我能够成功安装它们。任何人都可以帮助我找出我的食谱哪里出错了,我想我可能在我的食谱中的包资源上提供了不正确的源位置,我被困在这里。

【问题讨论】:

  • 配方中的source 可以是这样的远程 URL 吗?我可以看到的文档似乎没有表明它可以。
  • @EtanReisner 我想我们可以使用我从远程文件docs.chef.io/resource_remote_file.html 的厨师文档中观察到的示例,但我同意它应该在属性中声明并在配方中访问它。我已经改变了。谢谢
  • remote_filepackage 不是一回事。而remote_file 听起来正是我希望使package 中的source 条目起作用的那种事情......正如发布的答案所表明的那样。

标签: chef-infra yum test-kitchen


【解决方案1】:

yum_package resourcesource 属性不是 URL,而是本地文件系统上的路径。

您应该使用remote_file 资源将其指向您下载它的位置。我会推荐一个绝对路径。

例如

remote_file "/tmp/newrelic.rpm" do
  source "https://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm"
  owner 'root'
  group 'root'
  mode  0755
end

package "newrelic-repo" do
  source "/tmp/newrelic.rpm"
  action  :install
end

【讨论】:

  • 感谢您对此的纠正。通过更正位置,我能够成功安装软件包。但是,我很想知道在 Rhel 中安装软件包通常考虑什么路径。它总是“/tmp”吗?我还观察到在路径位置的某些配方中定义的“#{Chef::Config['file_cache_path']”,并且不确定它是否指向 /tmp 位置或不同的位置。你能给我建议吗?file_cache_path 对应的是什么。谢谢你的时间。
猜你喜欢
  • 2019-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多