2016-12-01 81 views
0

我與安裝在本地下載RPM文件的形式提供的軟件包的掙扎 - 只要在Oracle的Linux(OEL)。有錯誤嗎?有沒有人觀察過這個?這將是一個巨大的bug,所以我有點驚訝。廚師問題與甲骨文的Linux(OEL)本地rpm包安裝

廚師食譜很簡單:

pkg_src_location = 'https://s3.amazonaws.com/solution-automation-folder/qualys' 
pkg = 'qualys-cloud-agent.x86_64.rpm' 
local_image = "#{Chef::Config['file_cache_path']}/#{pkg}" 

remote_file 'qualys-cloud-agent-image' do 
    path local_image 
    source "#{pkg_src_location}/#{pkg}" 
end 

package 'qualys-cloud-agent' do 
    source local_image 
end 

這可以從https://github.com/r2oro/oel_pkg_test.git

我觀察到,在Oracle的Linux(OEL),它與下面的Python腳本結果被觸發:

/usr/bin/python /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.16.42/lib/chef/provider/package/yum/yum-dump.py --options --installed-provides --yum-lock-timeout 30 

它運行相當長一段時間(下載幾百兆數據的 - 據我可以看到 - yum回購元數據)並最終失敗(在調試模式下廚房將所有這些轉儲到標準輸出...)。反正結果是:

 * yum_package[qualys-cloud-agent] action install[2016-12-01T12:35:32+00:00] ERROR: /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.16.42/lib/chef/provider/package/yum/yum-dump.py exceeded timeout 900 


     ================================================================================ 
     Error executing action `install` on resource 'yum_package[qualys-cloud-agent]' 
     ================================================================================ 

     Mixlib::ShellOut::CommandTimeout 
     -------------------------------- 
     Command timed out after 900s: 
     Command exceeded allowed execution time, process terminated 
     ---- Begin output of /usr/bin/python /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.16.42/lib/chef/provider/package/yum/yum-dump.py --options --installed-provides --yum-lock-timeout 30 ---- 
     STDOUT: 
     STDERR: 
     ---- End output of /usr/bin/python /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.16.42/lib/chef/provider/package/yum/yum-dump.py --options --installed-provides --yum-lock-timeout 30 ---- 
     Ran /usr/bin/python /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.16.42/lib/chef/provider/package/yum/yum-dump.py --options --installed-provides --yum-lock-timeout 30 returned 

     Resource Declaration: 
     --------------------- 
     # In /tmp/kitchen/cache/cookbooks/oel_pkg_test/recipes/default.rb 

     16: package 'qualys-cloud-agent' do 
     17: source local_image 
     18: end 

     Compiled Resource: 
     ------------------ 
     # Declared in /tmp/kitchen/cache/cookbooks/oel_pkg_test/recipes/default.rb:16:in `from_file' 

     yum_package("qualys-cloud-agent") do 
     package_name "qualys-cloud-agent" 
     action [:install] 
     retries 0 
     retry_delay 2 
     default_guard_interpreter :default 
     declared_type :package 
     cookbook_name "oel_pkg_test" 
     recipe_name "default" 
     source "/tmp/kitchen/cache/qualys-cloud-agent.x86_64.rpm" 
     flush_cache {:before=>false, :after=>false} 
     end 

你注意,百勝flush_cache應該發生,但它仍然沒有?這很令人沮喪。這總是在我的本地廚房失敗,所以(與流浪漢/ VirtualBox的),或者甚至在AWS雲廚房...真正的情況下,有時會失敗有時收斂......但這是一個彩票。無論如何,爲什麼這個緩存更新發生在單個本地rpm映像!?

我曾嘗試使用rpm_package但是這會導致與其他配方中使用yum_package生存問題...

有什麼想法?

回答

1

在這種情況下,您可能確實希望使用rpm_package,但至於緩存重新加載的原因,可能僅僅是第一次遇到問題,因此必須執行初始重新加載,或者是在其他修改後套餐。

+0

我試圖用rpm_package但(如上所述),它會導致與使用yum_package其他一些食譜衝突,他們失敗,以下錯誤消息:「百勝轉儲一般錯誤:rpmdb中改變了我們下面」。其實這百勝突降發生在CentOS以及...但它不會產生這麼多的數據... – r2oro

+0

這聽起來像你的包是做一些靠不住的,以百勝不喜歡RPM數據庫。這一切都是手工操作嗎? – coderanger

+0

是的,確保rpm包是可以的。不過,我真的很關心yum_package的行爲。它激發了yum-dump.py查詢根本不需要的repo元數據(用於本地rpm安裝)。實際上它也發生在緩存已經刷新的節點上。通常這不會造成問題,但在OEL上它確實存在問題,因爲yum-dump.py非常龐大,並且轉儲最終會超時。 – r2oro