Oracle Linux(OEL)上でローカルにダウンロードされたrpmファイルの形式で入手可能なパッケージのインストールに苦労しています。バグはありますか?誰もこれを観察しましたか?それは巨大なバグでしょう、私は少し驚いています。oracle 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から入手可能です。
私はそれが次のPythonスクリプトと結果のOracleのLinux(OEL)でトリガされたことを観察した:
それはかなり長い間走る/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 repoメタデータ)、最終的には失敗します(キッチンはデバッグモードですべてを標準出力にダンプします)。とにかく結果は次のとおりです。
* 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
あなたはyumをflush_cacheが起こらない必要があることに注意してください、それはまだありませんでしたか?それはイライラしている。このはいつもで、私の地元のキッチン(迷彩/バーチャルボックス付き)でもAWSクラウドキッチンでも失敗します...実際のインスタンスが時々失敗することがあります...しかし、それは宝くじです。とにかく、なぜこのキャッシュアップデートが単一のローカルrpmイメージでも起こるのですか?
任意の考え...私はrpm_packageを使用しようでしたが、これは他のレシピで使用yum_package人間との問題につながりますか?
私はrpm_packageを使用しようとしましたが(前述のように)、yum_packageを使用する他のレシピと競合するため、 "yum-dump一般エラー:Rpmdbが私たちのもとで変更されました"というエラーメッセージで失敗しました。実際にはこのyum-dumpはCentosでも起こります...しかし、それはあまりデータを生成しません。 – r2oro
yumが好きではないRPMデータベースに対して、あなたのパッケージが何かをうまくやっているようです。これらはすべて手作業ですか? – coderanger
はい、rpmパッケージが正常であることを確認してください。しかし、私は本当にyum_packageの動作に懸念しています。それはyum-dump.pyがrepoメタデータを必要としない(ローカルのrpmインストールのために)必要がないと判断して起動します。実際には、キャッシュが既にリフレッシュされているノードでも発生します。通常は問題はありませんが、OELではyum-dump.pyが非常に大きく、ダンプが最終的にタイムアウトになるためです。 – r2oro