我们运行chef的部分机器无法使用基本软件包(如openjdk)访问yum-repository。
在chef11中,我们设法通过设置/etc/yum.conf
:
exclude=*
metadata_expire=2147483647
mirrorlist_expire=2147483647
不幸的是,在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)
是否有标志或黑客来禁用对yum-dump的此调用。我们提供了一个basebox,其中已经安装了正确版本的软件包?
我查看了一些缓存标志但是没有找到任何明显的标志?
答案 0 :(得分:0)
我认为您可以使用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