libvirtVirsh
virsh基于不同协议远程连接libvirt drivers(Hypervisors)
基于OS系统账号ssh登陆
基于tcp登陆
注,远程连接libvirt驱动tcp简单配置
libvirt基于tcp的端口是16509
最终tls/tcp配置
当基于tcp远程连接时再远程libvirt driver上如果不设置auth_tcp="none"
则
<二,>tls证书配置过程
yum -y install gnutls-utils
A,制作安全证书,3个文件内容分别:(其中需要注意的一点的是在server.info中的cn 的value是服务器端主机的FQDN名称,客户端的为客户端主机的FQDN名哦,但在测试中的客户端的值未用实际的值,是一个随意值,测试环境当前是单台主机)
B,生成ca
a分别依次执行:
b,
c,把生成的cacert.pem分别放到客户端和服务端的/etc/pki/CA目录
d,证书信息查看certtool -i --infile cacert.pem
e,制作服务器端的证书(命令执行如截图中2语句)
基于截图中2语句生成的证书文件分别放到服务器的2个目录
/etc/pki/libvirt/private/serverkey.pem
/etc/pki/libvirt/servercert.pem
f,制作客户端证书,分别执行截图中2语句
两个文件分别放到客户端的两个目录
/etc/pki/libvirt/private/clientkey.pem
/etc/pki/libvirt/clientcert.pem
在/etc/libvirt/libvirtd.conf配置中listen_addr="主机名称写错了",报错如下
总结:
安装以上证书配置过程可正确搞得libvirt基于tls的连接陪着,测试结果如下
libvirt tcp连接设置
Libvirt默认设置下是不支持TCP连接的,需要更改一些设置,具体做法如下:
1 修改/etc/sysconfig/libvirtd文件 将LIBVIRTD_ARGS="--listen" 前的'#'去掉。
2 在/etc/libvirt/libvirtd.conf文件末尾处添加
listen_tls=0
listen_tcp=1
auth_tcp="none"
3 重启libvirtd服务
libvirt默认情况下支持远程连接的tls协议,不支持tcp协议,因此将listen_tls=0 listen_tcp=1使libvirt能够支持TCP协议。另外,为方便起见将认证协议设为空,但是从安全的角度,此方法不可取。 可将auth_tcp="sasl",但在此设置下,应该要做些其它的处理,否则当应用程序连接到XEN时会发生验证失败:启动SASL协商错误。
libvirt安装部署依赖
libxml2 libxml2-dev gnutls libneon27-gnutls libcurl4-gnutls-dev device-mapper-devel python-dev libnl-dev
c语言库的使用
编辑好.c源码(例如myxm.cpp)后,在命令行下编译 gcc myxm.c -lvirt -o myxm
然后运行./myxm即可
例子:
#include <stdio.h>
#include <stdlib.h>
#include <libvirt/libvirt.h>
int main()
{
printf("Hello World!\n");
virConnectPtr conn=NULL;
conn=virConnectOpenReadOnly(NULL);
if(conn==NULL)
{
printf("conn is null!\n");
}
else
{
printf("connecting is successful!\n");
}
return 0;
}
使用过程出现的问题:
解决error while loading shared libraries: libvirt.so.0
第一种:
定义shell变量 LD_LIBRARY_PATH
$ LD_LIBRARY_PATH=/usr/local/lib
$ export LD_LIBRARY_PATH
$ ./example
第二种:
修改系统动态链接库配置文件
(the system dynamic linker configuration)
进入目录/etc/ld.so.conf.d
添加一个文件libvirt.conf,内容是:
# libvirt default configuration
/usr/local/lib
更新动态链接库缓存
sudo ldconfig
vnc连接虚拟机
libvirtVirsh的更多相关文章
- openNebula libvirt-virsh attach disk device for kvm
1,新建文件硬盘 qemu-img create -f qcow2 testdisk.img 2G
- libvirt- Virsh 所有命令详单
help 打印帮助 attach-device 从一个XML文件附加装置 attach-disk 附加磁盘设备 attach-interface 获 ...
随机推荐
- XTU1199:Number Game
题目描写叙述 给你一个有N个数的集合S和一个数X,推断是否存在S的一个子集,子集里的数的最小公倍数正好是X. 输入 第一行是数据组数T. 接下来有多组数据,每组数据包括两行: 第一行有2个数N和X,1 ...
- leetCode 26.Remove Duplicates from Sorted Array(删除数组反复点) 解题思路和方法
Remove Duplicates from Sorted Array Given a sorted array, remove the duplicates in place such that e ...
- HDU 1166 敌兵布阵(线段树)
题目地址:pid=1166">HDU 1166 听说胡浩版的线段树挺有名的. 于是就拜訪了一下他的博客.详情戳这里.于是就全然仿照着胡浩大牛的风格写的代码. 至于原理.鹏鹏学长已经讲的 ...
- TCP总结
TCP协议 <计算机网络>谢希仁 及笔记 TCP 的那些事儿(上):http://coolshell.cn/articles/11564.html TCP 的那些事儿(下):htt ...
- MySQL 5.6.19编译安装
1.创建mysql安装目录.mysql用户 [root@serv19 ~]# mkdir -p /u01/mysql/data [root@serv19 ~]# groupadd mysql [roo ...
- Entity Framework Code First 多数据库 控制台迁移代码
1.启动迁移 Enable Migrations Enable-Migrations -MigrationsDirectory "MigrationsOne" -ContextTy ...
- hdu 4772
题意:给你两个矩阵,一个矩阵旋转90度,180度,270度, 然后和另外一个矩阵进行比较,如果对应值相同,则加一,最后得出最大的值 题目没什么难度....主要是纪念下....貌似这一题是当时比赛前一个 ...
- ASP.net关于C#代码与javaScript函数的相互调用
C#代码与javaScript函数的相互调用 问:1.如何在JavaScript访问C#函数?2.如何在JavaScript访问C#变量?3.如何在C#中访问JavaScript的已有变量?4.如何在 ...
- GridView、Repeater获取当前行号
GridView: <%# Container.DataItemIndex+1 %> Repeater:<%# Container.ItemIndex+1%>
- 在vim中设置 '打印时间'的快捷键.
在 ~/.vimrc (没有该文件可以手动创建)中输入 map <F4> <Esc>:r !date<CR> 实现在 '一般模式'状态点击 F4时,自动在vim中打 ...