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的更多相关文章

  1. openNebula libvirt-virsh attach disk device for kvm

    1,新建文件硬盘 qemu-img create -f qcow2 testdisk.img 2G

  2. libvirt- Virsh 所有命令详单

    help            打印帮助    attach-device   从一个XML文件附加装置    attach-disk     附加磁盘设备    attach-interface 获 ...

随机推荐

  1. struts2,hibernate,spring整合笔记(3)

    struts2,hibernate,spring整合笔记(1) struts2,hibernate,spring整合笔记(2) 配好struts和hibernate就要开始spring了 老规矩,还是 ...

  2. [转] Makefile的条件执行

    条件语句可以根据一个变量的值来控制make执行或者忽略Makefile的特定部分.条件语句可以是两个不同变量.或者变量和常量值的比较.要注意的是:条件语句只能用于控制make实际执行的makefile ...

  3. POJ 2976 Dropping tests 01分数规划

    给出n(n<=1000)个考试的成绩ai和满分bi,要求去掉k个考试成绩,使得剩下的∑ai/∑bi*100最大并输出. 典型的01分数规划 要使∑ai/∑bi最大,不妨设ans=∑ai/∑bi, ...

  4. 线段树---HDU2795Billboard

    这道题跟第二个题差不多,求单点的最大值. 题目大意:有个高和宽分别为h, w的广告牌, 这个广告牌分成高为 1 的长条, 每条分别能贴长度为wi长度的广告, 输入的n为广告的条数,广告优先贴在最上边和 ...

  5. Fragment 创建 传递参数 跳转 典例

    抽取的控制Fragment的父Activity /**  * 抽象一个Activity托管我们的Single Fragment  */ public abstract class SingleFrag ...

  6. shape 填充 圆角矩形 圆形 环形

    属性 使用中可能出现的问题: 如果在某些手机中使用 shape 出现黑色填充背景,设置<solid android:color="@color/transparent"/&g ...

  7. 程序员必备英语.net版(.net菜鸟的成长之路-零基础到精通)

    通过一段时间的.NET学习,我发现英文不好是我的软肋~我觉得好好补习一下英文单词水平.可是要背哪些单词呢? 经过一段时间的整理,终于整理出来了一套比较完整的.NET程序员必备单词文档.单词加详细说明. ...

  8. css布局之负margin妙用及其他实现

    相信大家在项目的开发中都遇到过这样的需求,一行放X(X>1)个块且相邻块之间的间距相同. 大概就是上面这个样子,下面介绍几种实现的方式. 1.负margin大法 设置好元素的宽度和留白占满父级的 ...

  9. zookeeper管理solr的配置文件

    zookeeper可以管理solr和其他软件的配置文件.配置文件还是保存在linux服务器的磁盘上,但是不是改变solr读取solr/home配置的配置文件的位置. 现在solr/home配置文件的位 ...

  10. jquery的几种异步请求,ajax

    http://blog.csdn.net/a5489888/article/details/8523316