0

Chef-solo、Berkshelf、Vagrant を使用して開発環境を構築しようとしています。他のレシピは動作していますが、「chef-rvm」クックブックで Ruby バージョンをインストールする際に問題が発生しています。

明確にするために、RVMインストールしていますが、vbox に「 vagrant ssh 」と入力して「 rvm list」と入力すると、ルビーがインストールされていないと表示されます。「rvm install 2.1.1」と入力すると機能するので、Chef がインストールしない理由がわかりません。

Vagrantfile:

config.vm.provision :chef_solo do |chef|
  chef.run_list = %w[
    recipe[apt::default]
    recipe[rvm::user_install]
    recipe[rvm::vagrant]
  ]
end

レシピ/default.rb:

include_recipe 'apt'
include_recipe 'rvm::user_install'

属性/default.rb:

    node.set['rvm']['user_installs'] = [
    { 'user'            => 'vagrant',
      'upgrade'         => 'head',
      'default_ruby'    => '2.1.1',
      'rvm_gem_options' => '',
      'rubies' => ['2.1.1', '2.0.0-p481'],
      'global_gems'     => [
          { 'name'    => 'bundler',
            'version' => '1.6.2'
          },
          { 'name'    => 'rake' },
          { 'name'    => 'rails' },
          { 'name'    => 'rubygems-bundler',
            'action'  => 'remove'
          }
      ]
    }
]
4

1 に答える 1

1

私はそれがデフォルトのアクションであるべきだと思っていましたが、私はあなたと同じ問題を抱えています. 私の解決策は、json 構成に「 install_ruby 」プロパティを含めることでした。

node.set['rvm']['user_installs'] = [
    { 'user'            => 'vagrant',
       install_rubies: true,
       ...
    }
]
于 2015-03-03T03:31:03.067 に答える