Chef provisioning提供了一个用于在Chef中自觉创建机器和基础架构的库。
通过一些更改,我设法在我的本地笔记本电脑上运行一个简单的示例。我将下面的代码放在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机器?
答案 0 :(得分:1)
Chef Provisioning不再是您可能应该开始新工作的项目,有关详细信息,请参阅https://coderanger.net/provisioning/。正如评论中所提到的,Test Kitchen是用于通过Vagrant本地设置开发和测试VM或使用各种云插件之一的正确工具。