2013-06-03 9 views
5

Hey alles, was ich versuche, ein Vagrant Vm zu bauen. Ich verwende Chef-Solo für die Bereitstellung und chef-rbenv, um meine Versionen zu verwalten. so in der vagrantfile angeben iVagrant mit Ruby 1.9.3 als Standard

config.vm.provision :chef_solo do |chef| 
    chef.cookbooks_path = "cookbooks" 
    chef.add_recipe "ruby_build" 
    chef.add_recipe "rbenv::system" 
    chef.add_recipe "rbenv::vagrant" 
    ... 

    chef.json = { 
    "rbenv" => { 
     "rubies" => [ "1.9.3-p327" ], 
     "global" => "1.9.3-p327", 
     "gems" => { 
     "1.9.3-p327" => [ 
     { "name" => "bundler" } 
     ] 
     } 
    } 
    } 
end 

so dass die Standard-Ruby-Version 1.9.3-P327 sein wird, aber es stürzt ab

Error executing action `install` on resource 'rbenv_ruby[1.9.3-p327] (system)' 

und wenn ich nicht die Version in der Vagabund-Datei angeben (als (siehe oben), und gehe mit dem Standard-Rbenv, den der Koch baut, damit ich es installieren kann, sobald ich in der VM bin. i dann erhalten diese

[email protected]:/vagrant$ rbenv install 1.9.3-p327 
Downloading yaml-0.1.4.tar.gz... 
-> http://dqw8nmjcqpjn7.cloudfront.net/36c852831d02cf90508c29852361d01b 
Installing yaml-0.1.4... 

BUILD FAILED 
... 

funktioniert es, wenn ich sudo rbenv install 1.9.3-p327 laufen, aber dann, wenn alles, was ich habe läuft es mit sudo voran auch ruby -v

[email protected]:~$ ruby -v 
ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux] 
[email protected]:~$ sudo ruby -v 
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.3.0] 

wie kann ich es mit Koch-Solo installiert werden. Ich habe die ganze Woche versucht und kann es überhaupt nicht funktionieren.

Antwort

4

Der JSON erfordert, dass Sie für den Chef den Standort angeben, an den Sie Ruby installieren möchten. Da die Rezepte aufrufen, installieren Sie rbenv auf einer Systemebene und dann ein Benutzer lvl in diesem Fall vagrant.

chef.add_recipe "rbenv::system" 
chef.add_recipe "rbenv::vagrant" 

Also ging ich und änderte die json dazu:

chef.json = { 
    'rbenv' => { 
    'user_installs' => [ 
     { 
     'user' => 'vagrant', 
     'rubies' => ['1.9.3-p327'], 
     'global' => '1.9.3-p327', 
     'gems' => { 
      '1.9.3-p327' => [ 
      { 'name' => 'bundler' }, 
      { 'name' => 'rake' } 
      ] 
     } 
     } 
    ] 
    } 
} 

Auch das aktuelle rbenv Kochbuch oft Bugs hat so seine guten die neueste TAged Version des Kochbuch in der cheffile zu verweisen.

cookbook 'rbenv', git: 'git://github.com/fnichol/chef-rbenv.git', ref: "v0.7.2" 

wie so.