2

fnichol/chef-rvmrvm::userからレシピを実行しようとすると、問題が発生します。私は Vagrant ボックスと一緒にシェフを使用しています。rvm は正常にインストールされますが、chef が ruby​​ をインストールしようとするたびに、次のエラーで失敗します。

WARN: Failed to install rvm_ruby[ruby-1.9.3-p448]. Check logs in /log/ruby-1.9.3-p448

これが私のものVagrantfileです:

Vagrant.configure("2") do |config|
  config.vm.box       = 'precise32'
  config.vm.box_url   = 'http://files.vagrantup.com/precise32.box'

  config.vm.provision "chef_solo" do |chef|
    chef.add_recipe "rvm::vagrant" 
    chef.add_recipe "rvm::user"

    chef.json = {
      :rvm => {
        :user_installs => [
           {
              :user => "vagrant",
              :default_ruby => "1.9.3",
              :rubies => ["1.9.3"],
              :global_gems => [
                  { :name => 'bundler' }
              ],                   
           }
        ]
      }
  end
end
  • 環境の詳細:
    • 放浪者のバージョン:1.2.7
    • 放浪者 vm:precise32
    • rvm バージョン:1.22.11
    • シェフ-rvm ref:59dc482
4

2 に答える 2

3

Vagrant が非インタラクティブ/非 tty セッションでchef を実行していたことが判明しました。このsudoコマンドは、非対話的なセッションで実行するのが好きではなく、依存関係をインストールしようとすると (ubuntu の apt-get を介して) rvm が失敗します。

これを に追加すると、sudo を非対話的に実行できるようになります/etc/sudoers

vagrant  ALL= (ALL:ALL) NOPASSWD: ALL

rvm::userこれを追加すると、シェフはレシピを正常にインストールしました。

于 2013-09-24T21:41:02.943 に答える