我與安裝在本地下載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生存問題...
有什麼想法?
我試圖用rpm_package但(如上所述),它會導致與使用yum_package其他一些食譜衝突,他們失敗,以下錯誤消息:「百勝轉儲一般錯誤:rpmdb中改變了我們下面」。其實這百勝突降發生在CentOS以及...但它不會產生這麼多的數據... – r2oro
這聽起來像你的包是做一些靠不住的,以百勝不喜歡RPM數據庫。這一切都是手工操作嗎? – coderanger
是的,確保rpm包是可以的。不過,我真的很關心yum_package的行爲。它激發了yum-dump.py查詢根本不需要的repo元數據(用於本地rpm安裝)。實際上它也發生在緩存已經刷新的節點上。通常這不會造成問題,但在OEL上它確實存在問題,因爲yum-dump.py非常龐大,並且轉儲最終會超時。 – r2oro