一、LibVirt简介
Libvirt是用于管理虚拟化平台的开源的API,后台程序和管理工具。它可以用于管理KVM、Xen、VMware ESX,QEMU和其他虚拟化技术。这些API在云计算的解决方案中广泛使用。一般直接使用virsh命令进行操作。
二、如何使用远程连接
(1)修改LibVirt服务端的配置文件/etc/libvirtd.conf,修改以下配置项
listen_tcp = 1 tcp_port = "16509"
(2)重新启动LibVirt服务端
service libvirtd restart
(3)接下来就可以使用tcp来远程连接了,在任何一个安装了LibVirt客户端的机器上即可远程连接到LibVirt服务端,以下给出CentOS系统下安装LibVirt客户端的命令,或者使用安装包的方式进行安装:
yum install libvirt-client yum install cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 #在开启了sasl认证之后才需要执行此命令
(4)通过tcp远程连接:
virsh -c qemu+tcp://192.168.2.2:16509/system
三、LibVirt服务端开启密码认证(SASL方式)
(1)使用saslpasswd2给LibVirt应用创建一个用户
saslpasswd2 -a libvirt your_user_name Password: xxxxxx Again (for verification): xxxxxx
(2)查看sasl给LibVirt创建的用户
sasldblistusers2 -f /etc/libvirt/passwd.db
修改LibVirt服务端的配置文件/etc/libvirt/libvirtd.conf
auth_tcp = "sasl" #auth_tls = "none" #tls认证,修改同tcp
(3)重新启动LibVirt服务端
service libvirtd restart
(4)接下来通过tcp连接就需要输入用户名密码了
四、LibVirt服务端开启tls
(1)服务端开启tls,需要在服务端依次生成文件cakey.pem,cacert.pem,serverkey.pem,servercert.pem,clientkey.pem,clientcert.pem文件,参考链接:https://libvirt.org/tlscerts.html:
#创建一个目录,用于存放需要生成的文件 mkdir /opt/ssl_generate && cd /opt/ssl_generate #生成cakey.pem certtool --generate-privkey > cakey.pem #创建自签名描述文件ca.info cat > ca.info <<EOF cn = Name of your organization ca cert_signing_key EOF #生成cacert.pem certtool --generate-self-signed --load-privkey cakey.pem --template ca.info --outfile cacert.pem #生成serverkey.pem certtool --generate-privkey > serverkey.pem #生成自签名描述文件server.info,注意,The 'cn' field should refer to the fully qualified public hostname of the server cat > server.info <<EOF organization = CG cn = CG tls_www_server encryption_key signing_key EOF #生成servercert.pem文件 certtool --generate-certificate --load-privkey serverkey.pem \ --load-ca-certificate cacert.pem --load-ca-privkey cakey.pem \ --template server.info --outfile servercert.pem #clientkey.pem和clientcert.pem文件的生成类似,不再赘述 #将文件cacert.pem文件复制到目录/etc/pki/CA/cacert.pem cp cacert.pem /etc/pki/CA/cacert.pem #将文件serverkey.pem文件复制到目录/etc/pki/libvirt/private/serverkey.pem cp serverkey.pem /etc/pki/libvirt/private/serverkey.pem #将文件servercert.pem文件复制到/etc/pki/libvirt/servercert.pem cp servercert.pem /etc/pki/libvirt/servercert.pem
(2)修改服务端的配置文件/etc/libvirtd.conf文件,并重启服务端
listen_tls = 1
(3)将cacert.pem,clientkey.pem,clientcert.pem这3个文件复制到客户机上,并通过tls连接,其中url参数pkipath就是存放这3个文件的目录
virsh -c qemu+tls://188.188.77.131:16514/system?pkipath=/opt/ssl_client
(4)如果在服务器端关闭认证,即在/etc/libvirt/libvirtd.conf文件中将配置项“tls_no_verify_certificate = 1”的注释放开,再重启服务端,则客户机上只需要cacert.pem文件即可
五、虚拟机安装qemu-guest-agent
(1)虚拟机安装了qemu-guest-agent之后,在宿主机上运行以下命令即可获取虚拟机的ip
virsh qemu-agent-command VMNAME '{"execute":"guest-network-get-interfaces"}'
(2)Linux系统安装qemu-guest-agent
- 创建了一台CentOS7.0系统的虚拟机,创建完成之后自动运行了qume-guest-agent,并不需要手动安装
(3)Windows系统安装qemu-guest-agent
- 首先要安装virt-io,virt-io下载地址:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.190-1/
- 然后安装qemu-guest-agent,安装文件在iso文件的guest-agent目录下