2015-02-10 37 views
0

我們運行廚師的部分機器無法訪問基本包(如openjdk)的yum-repository。如何在沒有互聯網連接的情況下從緩存中調用yum_package?

在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轉儲。我們提供了一個basebox,其中已經安裝了正確版本的軟件包?

我看了一些緩存標誌,但沒有發現任何明顯的?

回答

0

我想你可以使用一個菜譜文件到本地包下降到一個臨時目錄,然後執行

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 
相關問題