ubuntu安装KVM虚拟机管理virt-manager并连接到远程服务器

时间:2024-03-25 11:06:23

首先我在服务器上进行了如下操作:

1、查看是否支持了虚拟化:cat /proc/cpuinfo | grep -E 'vmx|svm'(可跳过)

ubuntu安装KVM虚拟机管理virt-manager并连接到远程服务器

2、查看是否kvm的驱动已经加载:lsmod | grep kvm(可跳过)

ubuntu安装KVM虚拟机管理virt-manager并连接到远程服务器

如果没有加载kvm驱动,利用命令加载驱动

modprobe -a kvm

modprobe -a kvm_intel

3、 安装qemu-kvm: yum install -y qemu-kvm

4、 安装libvirt:

yum install -y libvirt

service libvirtd restart

5、 验证libvirt是否正常启动: virsh version

ubuntu安装KVM虚拟机管理virt-manager并连接到远程服务器

6、 安装virt-manager工具: yum install -y virt-manager

7、使用virt-manager命令启动时发现需要安装xmanager,然后我一查xmanager,发现是需要付费的,en。。。。。。,所以换了一种方式。。。。。。ubuntu安装KVM虚拟机管理virt-manager并连接到远程服务器

-----------------------------------------------------------------------分割线-----------------------------------------------------------------------------------------

这方式就是通过用虚拟机里的virt-manager来管理远程服务器上的虚拟化。

我虚拟机装的操作系统是ubuntu16.04

有些博客说直接使用命令apt-get install virt-manager来安装virt-manager,我试了一下,发现还需要安装些其他东西。。。

ubuntu安装KVM虚拟机管理virt-manager并连接到远程服务器

安装了virt-manager之后点击这个图标,它会提示你还缺少qemu-system、libvirt-bin这些东西,具体记不太清了,当时没记录,反正它会有提示,缺啥你就安装啥就行了。

安装好之后就开始连接远程主机吧,具体可以参考这篇博客https://www.cnblogs.com/ilanni/p/3885191.html,写的很详细

然而后面我又遇到了连接到主机时候无法弹出认证框的问题:

    "You need to install openssh-askpass or similar to connect to this hos。。。"

“libvirtError: Cannot recv data: ssh_askpass: exec(/usr/bin/ssh-askpass): No。。。”

解决办法:

  安装ssh-askpass-gnome来允许弹出认证框:

sudo apt-get install ssh-askpass-gnome --no-install-recommends

Openssh-askpass是用于图形界面下输入口令的,具体的我也不太清楚。

接下来连接主机,结果弹出如下的错误:

authentication unavailable: no polkit agent available to authenticate action 'org.libvirt.unix.manage'

Verify that the 'libvirtd' daemon is running
on the remote host.

这个主要是WebVirtMgr的安装导致出现的错误,解决方法如下(注意:是在远程服务器上进行下面的操作!):

1、增加libvirtd用户组

groupadd libvirtd

2、设置用户到组

sudo usermod -a -G libvirtd $USER

3、设置启动libvirtd服务的用户组

vi /etc/libvirt/libvirtd.conf

ubuntu安装KVM虚拟机管理virt-manager并连接到远程服务器

4、增加权限启动配置

vi /etc/polkit-1/localauthority/50-local.d/50-org.libvirtd-group-access.pkla
[libvirtd group Management Access]
Identity=unix-group:libvirtd
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes

5、重启服务

systemctl restart libvirtd.service

参考:https://www.jianshu.com/p/b9a8fc431224

https://www.cnblogs.com/ilanni/p/3885191.html

https://bbs.archlinux.org/viewtopic.php?id=240547