Chef infra 如果没有仅从缓存进行internet连接,如何调用yum_包?

Chef infra 如果没有仅从缓存进行internet连接,如何调用yum_包?,chef-infra,yum,Chef Infra,Yum,我们运行chef的部分机器无法访问包含基本软件包(如openjdk)的yum存储库 在chef11中,通过在/etc/yum.conf中设置参数,我们设法不触发internet连接: 不幸的是,在chef12中,这已经不够了。我们有一个例外: [2015-02-10T09:43:38+00:00] ERROR: yum_package[java-1.7.0-openjdk] (java::openjdk line 46) had an error: Mixlib::ShellOut::Comma

我们运行chef的部分机器无法访问包含基本软件包(如openjdk)的yum存储库

在chef11中,通过在/etc/yum.conf中设置参数,我们设法不触发internet连接:

不幸的是,在chef12中,这已经不够了。我们有一个例外:

[2015-02-10T09:43:38+00:00] ERROR: yum_package[java-1.7.0-openjdk] (java::openjdk line 46) had an error: Mixlib::ShellOut::CommandTimeout: Command timed out after 900s:
Command exceeded allowed execution time, process terminated
---- Begin output of /usr/bin/python /opt/chef/embedded/apps/chef/lib/chef/provider/package/yum-dump.py --options --installed-provides --yum-lock-timeout 30 ----
STDOUT: 
STDERR: 
---- End output of /usr/bin/python /opt/chef/embedded/apps/chef/lib/chef/provider/package/yum-dump.py --options --installed-provides --yum-lock-timeout 30 ----
Ran /usr/bin/python /opt/chef/embedded/apps/chef/lib/chef/provider/package/yum-dump.py --options --installed-provides --yum-lock-timeout 30 returned 
[2015-02-10T09:43:38+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
是否有标志或hack来禁用对yum dump的调用。我们提供了一个basebox,其中已经安装了正确版本的软件包


我查看了一些缓存标志,但也没有发现任何明显的标记?

我认为您可以使用cookbook文件将一个包本地放到临时目录中,然后执行以下操作

cookbook_file "/tmp/yourpackage-1.1.1.rpm" do
  source "yourpackage-1.1.1.rpm"
  action :create
end

package "yourpackage" do
  source "/tmp/yourpackage-1.1.1.rpm
  action :install
end
cookbook_file "/tmp/yourpackage-1.1.1.rpm" do
  source "yourpackage-1.1.1.rpm"
  action :create
end

package "yourpackage" do
  source "/tmp/yourpackage-1.1.1.rpm
  action :install
end