Featured image of post Ubuntu 18.04 Server 搭建 KVM 虚拟机(二)

Ubuntu 18.04 Server 搭建 KVM 虚拟机(二)

使用 KVM 在 Ubuntu 18.04 Server 下搭建虚拟机

在上一节中,我们提供了如何通过新建分区来为/var目录扩容,好让我们之后能够创建kvm虚拟机,这一节我们将来看看如何在Ubuntu 18.04 Server环境下搭建虚拟机。

安装

安装KVM

首先,我们先检查一下我们的系统是否支持硬件虚拟化。为此,需要在终端中运行如下的命令

1
egrep -c '(vmx|svm)' /proc/cpuinfo

假如结果是 zero (0),说明系统不支持硬件虚拟化,或者在 BIOS 中禁用了虚拟化。进入你的系统 BIOS 并检查虚拟化选项,然后启用它。

假如结果是 1 或者 更大的数,说明系统将支持硬件虚拟化。然而,在你运行上面的命令之前,你需要始终保持 BIOS 中的虚拟化选项是启用的。

也可以使用其它方式进行测试自己的机器是否支持虚拟化,具体可以查看下面的文章进行了解。

在测试完自己的机器支持虚拟化之后,我们将要开始安装KVMlinux下支持虚拟化的相关工具。

Ubuntu或者其它基于DEB的系统上,使用如下命令进行安装:

1
$ sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker

KVM 安装完成后,启动 libvertd 服务(如果它没有启动的话):

1
2
$ sudo systemctl enable libvirtd
$ sudo systemctl start libvirtd

创建虚拟机

所有的虚拟机文件和其它的相关文件都保存在 /var/lib/libvirt/ 下。ISO 镜像的默认路径是 /var/lib/libvirt/boot/

我们先运行命令查看是否有虚拟机。查看可用的虚拟机列表,运行如下的命令:

1
$ sudo virsh list --all

示例输出:

1
2
Id Name State
----------------------------------------------------

后续使用命令行创建虚拟机,我们可以查看下面的文件进行详细了解:

使用命令行操作的方式未免太过于繁琐,我们每一次创建虚拟机都需要进入宿主机内部,然后使用命令行方式尽心创建,很明显使用界面化方式进行操作十分必要。

我们这里使用Kimchi 来搭建KVMweb管理平台。

安装KVM管理平台

更新系统源

1
$sudo apt update && sudo apt upgrade -y

安装kimchi、work依赖

因为kimchi是作为work的一个插件来管理kvm虚拟机的,所以我们也需要安装work的相关依赖

1
2
$sudo apt install python-paramiko python-pil novnc python-libvirt python-ethtool python-ipaddr python-guestfs libguestfs-tools spice-html5 spice-html5 python-magic keyutils libnfsidmap2 libtirpc1 nfs-common rpcbind python-configobj python-parted -y

安装Kimchi

上面我们也介绍了,kimchi是作为插件运行在work上面的,所以我们需要先安装work

下载

1
2
3
4
$wget https://github.com/kimchi-project/kimchi/releases/download/2.5.0/wok-2.5.0-0.noarch.deb

$wget https://github.com/kimchi-project/kimchi/releases/download/2.5.0/kimchi-2.5.0-0.noarch.deb
Installing dependencies:

安装

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
$sudo apt install nginx -y

$sudo dpkg -i wok-2.5.0-0.noarch.deb

$sudo apt install -f -y

$sudo dpkg --ignore-depends=python-imaging -i kimchi-2.5.0-0.noarch.deb

#重启
$sudo shutdown -r now

#如果开启了防火墙,记得开放8001端口
$sudo ufw allow 8001/tcp

!注意

按照上述安装步骤安装之后可能存在无法运行的情况,那么需要在依赖中移除python-imaging依赖

要做到这一点,你必须编辑/var/lib/dpkg/status文件并找到行包kimchi,你必须删除python-imaging或在Depends:子句中将其重命名为python-pil,如下所示

图一

一般来说,依照上面的安装之后,在浏览器中输入宿主机的地址和8001端口就可以访问,但是我们很不幸,没有按照正常的套路进行下去,我们在打开页面输入用户名和密码之后(用户名和密码就是你宿主机的用户和密码),我们仅仅看到了下面的界面,并没有在页面中找到关于kimchi的东西。

图二

查看日志

1
$cat /var/log/wok/wok-error.log

图三

通过查看日志,我们发现存储池有问题,那么我们去配置一下存储池

图四

图中除了bootISO,其它的都是我们后来创建的

编辑模版

1
$vi /etc/kimchi/template.conf

图五

改成红框内的字样(要和默认资源池对应上)

重启wokd

1
$ systemctl restart wokd

再次刷新页面,就可以看到我们期待已久的kimchi

图六

创建桥接模式的网络

默认条件下我们创建的虚拟机网络都是基于nat模式的,然后如果直接创建桥接网络会直接报错

图七

这时候就需要我们在宿主机中先创建桥接网络,然后在页面上通过输入相应的桥接名称来让其发现宿主机的桥接网络,实现桥接模式

1
$vi /etc/netplan/50-cloud-init.yaml

图八

1
2
3
4
5
6
7
8
bridges:
            br0:
                    interfaces: [enp2s0]
                    dhcp4: no
                    addresses: [192.168.0.110/24]
                    gateway4: 192.168.0.1
                    nameservers:
                            addresses: [8.8.8.8, 114.114.114.114]

保存后,再在页面上创建名称为br0的桥接网络,即可创建成功

总结

本篇文章主要介绍了kvm虚拟机和kvm虚拟机管理客户端的安装,其中重点介绍了管理客户端安装过程中遇到的一系列问题,相信通过这篇文章的介绍,能够帮助大家搭建属于自己的虚拟机环境。

参考

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus