vagrant 无法使用 libvirt 创建框

vagrant 无法使用 libvirt 创建框

我正在尝试使用以下 Vagrantfile 设置带有 vagrant 和 libvirt 的盒子

Vagrant.configure("2") do |config|
  config.vm.define :test_vm do |test_vm|
    test_vm.vm.box = "test"
    test_vm.vm.network :private_network, :ip => '10.20.30.40'
  end

  config.vm.provider :libvirt do |libvirt|
    libvirt.driver = "qemu"
    libvirt.host = "localhost"
    libvirt.connect_via_ssh = false
    libvirt.username = "root"
    libvirt.storage_pool_name = "data"
  end
end

在 RHEL 6.4 上我收到以下错误

Error while connecting to libvirt: Error making a connection to libvirt URI qemu://localhost/system?no_verify=1:
Call to virConnectOpen failed: Unable to import client certificate /etc/pki/CA/cacert.pem

我尝试按照此处所述设置证书http://libvirt.org/remote.html#Remote_TLS_CA但这并没有改变任何事情。

如果我尝试通过 ssh 连接,vagrant 可以缓慢地上传盒子,但之后我会遇到下一个失败

Call to virDomainCreateWithFlags failed: internal error Process exited while reading console log output: char device redirected to /dev/pts/20
qemu-kvm: -drive file=/local/data/virtualbox/root_1372773363.img,if=none,id=drive-virtio-disk0,format=qcow2: could not open disk image /local/data/virtualbox/root_1372773363.img: Invalid argument

在 Fedora 17 或 Arch Linux 上,我甚至无法安装 vagrant-libvirt 插件,因为它找不到 libvirt 库(位于 /usr/lib 下)。

是否有人以某种方式设法让 vagrant 与 libvirt 协同工作或者 libvirt 插件仍处于 alpha 阶段?

TIA&&祝你有美好的一天!

巴斯蒂

答案1

我收到此Error while connecting to libvirt错误,但这是因为我在运行时vagrant up没有指定provider

就我而言,我需要

$ vagrant up --provider virtualbox

答案2

当我尝试启动 Vagrant 机器时出现此错误,但最初没有安装 Virtualbox(尽管我之前写过我需要它)。

安装 Virtualbox 立即解决了这个问题。

答案3

我也遇到了同样的问题。要修复它,我必须遵循以下指南:http://wiki.libvirt.org/page/TLSSetup

请注意,本指南包含多个步骤,而且很长。但这并不是一件“简单”的事情,一旦您拥有了 CAcert/key HostCert/key 和 ClientCert/key,并拥有正确的权限和正确的所有权,一切都会按预期进行。

感谢您报告此事,希望这对您有所帮助。

答案4

Virtual Box 和 Vagrant 都必须是最新版本,或者至少是兼容版本,因此请卸载并重新安装这两个程序(为确保它们兼容,请安装这两个程序的最新版本),请注意,必须在 Virtual Box 之后安装 Vagrant

相关内容