libvirt-go 探索(入门)

基于https://github.com/libvirt/libvirt-go README

确保已安装libvirt-dev版本支持1.2.0版本之后的libvirt默认情况下,绑定将支持libvirt.so,libvirt-qemu.so和libvirt-lxc.so中的API。可以使用构建标记'without_qemu'或'without_lxc'分别从构建中删除后两个库。Go API被认为是生产就绪的,旨在保持未来版本的稳定性。

libvirt项目旨在将libvirt-go添加到主libvirt C库后立即添加对新API的支持。如果要提交对libvirt C库API的更改,请同时提交libvirt-go更改。

测试核心API单元测试都是使用内置的测试驱动程序(test:///default)编写的,因此它们与主机OS环境没有交互。

使用自动化测试验证libvirt C库API /常量的覆盖范围。这些可以通过传递'api'构建标记来运行。例如,go test -tags api

对于测试驱动程序缺乏功能的区域,可以使用QEMU或LXC驱动程序来执行代码。这些测试必须是'integration_test.go'文件的一部分,但只有在传递'integration'构建标记时才会运行。例如,go test -tags integration

为了运行单元测试,应将libvirtd配置为允许您的用户帐户以无密码进行读写访问。这可以使用polkit配置文件轻松完成

将'jahentao'替换为您的UNIX用户名。

Polkit是用于实现权限管理的, 通过给非特权进程授权,允许具有特权的进程(或者库文件lib)> 给非特权进程提供服务。

其中一个集成测试还要求libvirtd正在侦听localhost上的TCP连接,使用sasl auth。

这可以通过编辑/etc/libvirt/libvirtd.conf进行设置来设置

然后修改 vim /etc/default/libvirtd(在vagrant虚拟机中是 /etc/sysconfig/libvirtd) 添加--listen标志

PS:修改密码机制和存储位置/etc/sasl2/libvirt.conf

其实 sasldb_path 不改也行,默认在 /etc/sasldb2

重启libvirtd服务

然后创建一个sasl用户

并输入"pass"作为密码

查看用户名(注意前面是否修改密码存储路径)

PS:修改Vagrant的boxes存储位置

Vagrant的boxes默认是放在~/.vagrant.d/boxes下面的

修改box存放路径:
1. copy ~/.vagrant.d/下面的目录到新目录

2. 设置环境变量

就这样,重新登录shell后,boxes的存放目录就在 /path/to/vagrant_home/boxes 下面了

PS:vagrant使用代理

For Mac/Linux (in Bash)

then

For Windows use set instead of export.

then

PS:安装插件可能遇到问题,可能需要临时禁用Ipv6
https://github.com/hashicorp/vagrant/issues/8893
或者是代理配置的问题比如socks5协议

运行集成测试需要Vagrantfile,需要使用virtualbox。

在里面,做上面集成测试需要的修改。

其中一个集成测试还要求libvirtd正在侦听localhost上的TCP连接,使用sasl auth,这可以通过编辑/etc/libvirt/libvirtd.conf进行设置来设置

然后修改 ,在vagrant虚拟机中是 /etc/sysconfig/libvirtd 添加--listen标志

然后

在vagrant box中可能遇到问题,就是没有就行上述集成测试的修改。

Connection refused

发布者

Jiaheng Tao

挖掘概念,创造工具

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据