【发布时间】:2013-04-16 15:00:02
【问题描述】:
我正在使用 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 运行类似的东西。
【问题讨论】:
-
chef-solo 在你的 VM 中运行 - 你想控制在那里或你的主机上使用哪个 Ruby 版本?
-
在虚拟机上。我为上述问题添加了说明/解决方法。
标签: ruby ubuntu chef-infra vagrant chef-solo