我正在尝试使用以下 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