厨师配置Vagrant

时间:2016-06-20 18:29:31

标签: vagrant chef provisioning infrastructure

Chef provisioning提供了一个用于在Chef中自觉创建机器和基础架构的库。

还有driver for using Vagrant

通过一些更改,我设法在我的本地笔记本电脑上运行一个简单的示例。我将下面的代码放在Ruby文件vagrant_linux.rb中,然后使用chef-client -z vagrant_linux.rb运行它。

require 'chef/provisioning/vagrant_driver'
with_driver 'vagrant'

with_machine_options :vagrant_options => {
  'vm.box' => 'ubuntu/trusty64'#,
},:vagrant_config => <<EOF
    config.vm.provider 'virtualbox' do |v|
      v.memory = 4096
      v.cpus = 2
    end
EOF
machine 'mario' do
  converge true
end

当我根据此示例创建Chef配方时,将其上传到我的Chef服务器然后应用于节点,这始终会失败并显示消息

[2016-06-20T20:16:36+02:00] ERROR: machine[mario] (ok-test::default line 99) had an error: RuntimeError: vagrant up mario --provider virtualbox failed!
STDOUT:
STDERR:Vagrant failed to initialize at a very early stage:

Vagrant is attempting to interface with the UI in a way that requires
a TTY. Most actions in Vagrant that require a TTY have configuration
switches to disable this requirement. Please do that or run Vagrant
with TTY.

谷歌搜索显示这是一个常见问题,似乎没有一个好的/可行的修复或解决方法。

这让我想知道我是不是想尝试做一些我不应该做的事情,因为它不受支持,并且有更好的方法可以做到。

Vagrant当然是在本地笔记本电脑上运行的工具。它通常不在服务器上使用。

我应该使用什么来在服务器上配置简单的VirtualBox机器?

1 个答案:

答案 0 :(得分:1)

Chef Provisioning不再是您可能应该开始新工作的项目,有关详细信息,请参阅https://coderanger.net/provisioning/。正如评论中所提到的,Test Kitchen是用于通过Vagrant本地设置开发和测试VM或使用各种云插件之一的正确工具。