1

シェフのレシピで使用する大きなファイルを wget しようとしています。これは約 350 MB のデータベース バックアップです。ファイルを取得するために wget を使用しています。これが私のレシピです。

include_recipe "apt"

include_recipe "sudo"

execute "sudo mkdir -p ~/dev/dbbackup"

execute "download most recent db backup" do
  command "sudo wget --user=theusername --password=thepassword -P ~/dev/dbbackup/ https://ourdbbackup.com/latest.psql.gz"
  timeout 86400
 end

何を試しても、次の結果が得られます。

[2013-04-23T21:50:32+00:00] INFO: Processing execute[download most recent database backup] action run (company_dev::default line 25)
bash: line 2:  1184 Killed                  chef-solo -c /tmp/vagrant-chef-1/solo.rb -j /tmp/vagrant-chef-1/dna.json
Chef never successfully completed! Any errors should be visible in the output above. Please fix your recipes so that they properly complete.

rest_timeout オプションを追加できるように、Vagrant にモンキー パッチを適用してみました。

Vagrant::Config.run do |config|
  config.vm.box = "precise32"
   config.vm.provision :chef_solo do |chef|
     chef.cookbooks_path = "cookbooks"
     chef.add_recipe "company_dev"
     chef.log_level = :debug
     chef.rest_timeout = 86400
  end 
end

これにより、rest_timeout オプションを持つ /tmp/vagrant-chef-1/solo.rb が生成されます。

rest_timeout 86400

しかし、Chef が完了できないという同じエラーが引き続き表示されます。Chef のタイムアウトやその他の問題でレシピが停止することなく、この大規模なダウンロードを機能させるための提案はありますか? マシンをセットアップして内部から wget を実行すると、正常に動作します。どんな助けでも大歓迎です!

4

3 に答える 3

2

VM のメモリを増やし、以下を に追加しますVagrantfile

config.vm.provider :virtualbox do |vb|
   vb.customize ["modifyvm", :id, "--memory", "2048"]
end

次に、VM を再作成します。

vagrant destroy --force && vagrant up

PS:remote_file代わりに使用しない理由wget

于 2013-10-22T07:26:38.857 に答える
0

ファイルのダウンロード中に wget を生成する動的コンソール出力に問題があるようです。これにより、メモリ不足エラーが発生します。「curl -O filename download_url」を使用して、この問題を修正しました。

于 2013-04-30T18:50:46.967 に答える
0

wget を使用して外部ソースから大きなファイルをダウンロードする場合も同じ問題が発生します。使用するコマンドが変更されcurl -O #{URL}、chef-client の実行がエラー runKilled エラーで失敗しなくなりました。ラックスペース クラウドで Chef 11.4 を使用する

于 2014-01-04T18:16:16.983 に答える