我正在使用 chef-solo 来配置一个新的 vagrant VM。这是 Ubuntu 12.10。Chef 第一次运行良好,但此后任何时候都无法启动。
问题是 chef-solo 需要使用 ruby 1.9.3 运行,但我的一本食谱安装了 ruby 2.0.0。它将新版本的 ruby 链接到 /usr/local/ruby,因此系统版本仍然在 /usr/bin/ruby 中可用。
/usr/bin/chef-solo 中的 shebang 行是#!/usr/bin/env ruby
.
有没有办法在 chef-solo 运行之前在 Vagrantfile 中设置环境变量?还是有另一种方法可以强制 vagrant 使用 /usr/bin/ruby 运行 chef-solo?
更新:我目前在 VM 上使用以下命令作为解决方法:
sudo /usr/bin/ruby /usr/bin/chef-solo --config /tmp/vagrant-chef-1/solo.rb --override-runlist "my_runlist"
vagrant provision
当我在主机上打字时,我想强制 Vagrant 运行类似的东西。