2016-12-01 19 views
0

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人間との問題につながりますか?

答えて

1

この場合、おそらくrpm_packageを使用しますが、キャッシュがリロードされている理由は、最初にリロードされるため、最初のリロードが必要になるか、パッケージセット。

+0

私はrpm_packageを使用しようとしましたが(前述のように)、yum_packageを使用する他のレシピと競合するため、 "yum-dump一般エラー:Rpmdbが私たちのもとで変更されました"というエラーメッセージで失敗しました。実際にはこのyum-dumpはCentosでも起こります...しかし、それはあまりデータを生成しません。 – r2oro

+0

yumが好きではないRPMデータベースに対して、あなたのパッケージが何かをうまくやっているようです。これらはすべて手作業ですか? – coderanger

+0

はい、rpmパッケージが正常であることを確認してください。しかし、私は本当にyum_packageの動作に懸念しています。それはyum-dump.pyがrepoメタデータを必要としない(ローカルのrpmインストールのために)必要がないと判断して起動します。実際には、キャッシュが既にリフレッシュされているノードでも発生します。通常は問題はありませんが、OELではyum-dump.pyが非常に大きく、ダンプが最終的にタイムアウトになるためです。 – r2oro

関連する問題