玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

在云和容器今天,基础的虚拟架构更先得重要了。而其中基于Linux内核的开放虚拟机KVM更是最重要虚拟化基础架构。本文虫虫将带领大家一起实例学习利用KVN构建自己的虚拟平台。其中包括:基于Centos 7.6安装KVM、组网、配置VNC、安装webvirtcloud进行KVM虚拟平台管理,安装kalil inux虚拟机实例。

KVM安装

开启虚拟化加速

KVM依赖CPU虚拟加速,需要确保机器已经开启,可以通过linux命令查看该信息:

grep -E 'svm |vmx' /proc/cpuinfo

如果显示如下:

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

上面表示已经启动了Intel的虚拟化加速。其中vmx表示Intel CPU的虚拟技术Intel Virtualization Technology, Intel VT-x。svm是AMD CPU的虚拟技术AMD Secure Virtual Machine, AMD SVM

如果你的终端执行后没有输出,你需要重启电脑进入BIOS开启用虚拟化。开机按键进入BIOS:

自攒机看主板:华硕按F8、Intel按F12,其他主板按ESC、F11或F12;

笔记本:联想ThinkPad系列按F1,其他品牌按F2;

品牌台式机按品牌分, Dell按ESC,其他按F12;

进入BIOS后,进入Configuration中设置开启:

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

AMD CPU:

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

安装KVM和相关的软件组件

我们所有安装都在Centos字符终端下,不会安装任何图形工具来管理虚拟机。

安装KVM需要安装一下相关软件包:

yum install qemu-kvm qemu-img libvirt virt-install libvirt-client libvirt-python

yum安装时候会自动安装必须的许多依赖项。安装完成后,可以通过以下命令检查:

lsmod | grep kvm

如果安装无误,输入应该显示类似如下:

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

配置网络

默认情况下,KVM会在虚拟机管理程序上设置名为"virbr0"的网络接口。它为为虚拟机创建一个网络,该网络使用NAT(网络地址转换)访问它所驻留的网络之外的资源,在本例中使用的是192.168.122.0/24。

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

为了虚拟机能有单独的网络,我们需要配置桥接网络:

cd /etc/sysconfig/network-scripts/

cp ifcfg-eno1 ifcfg-bridge0

注意加重部分根据实际情况换成实际的网卡名

修改ifcfg-eno1配置为:

TYPE=Ethernet

BOOTPROTO=none

DEFROUTE=yes

NAME= eno1

DEVICE= eno1

ONBOOT=yes

BRIDGE= bridge0

修改ifcfg-bridge0配置为:

TYPE=Bridge

BOOTPROTO=static

DEFROUTE=yes

NAME= bridge0

DEVICE= bridge0

ONBOOT=yes

IPADDR=10.0.15.240

GATEWAY=10.0.15.254

DNS=114.114.114.114

注意网络按照实际情况修改,网卡ifcfg-eno1中的ip地址信息配置删除,新增加"BRIDGE= bridge0",而在ifcfg-bridge0中配置ip地址等信息。

然后重启网络:

systemctl restart network

配置VNC

修改监听地址

在KVM创建虚拟机时候virt-install添加使用'-vnc'选项时,就会在localhost(127.0.0.1)地址启动一个监听。为了远程访问,我们需要修改vnc的默认配置。我们修改/etc/libvirt/qemu.conf,查找:

# vnc_listen ="0.0.0.0"

去掉改语句前面的#注释符号,使得该配置生效,这样就可以远程反问vnc了。

防火墙开放端口

相应我们需要在防火墙开放规则,开启vnc的端口。VNC的默认端口范围从TCP 5900开始,往下顺延,一台虚拟机占用一个端口。我们在防火墙上开启TCP 5900 -> 6100段端口就足矣。

firewall-cmd --zone = public --permanent --add-port = 5900-6100/tcp

如果使用iptables:

iptables -A INPUT -p tcp -m state --state NEW --dport 6000:6500 -j ACCEPT

添加后通过运行来验证我们的规则条目

firewall-cmd --zone = public --permanent --list-ports

iptables使用

iptabes iptables -n -L

构建虚拟机

准备安装镜像

构建虚拟机之前需要先下载好安装ISO镜像,本例子中我们选择国内镜像站,下载kali最新安装包镜像kali-linux-light-2019.2-amd64.iso。

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

下载完成后,使用

sha1sum kali-linux-light-2019.2- amd64.iso 并比对镜像站提供的哈希值做校对,确保安装包无误。

生成虚拟机

OK,万事具备只欠东风,生成虚拟机也很容易只需要用virt-install命令即可:

virt-install --name kali --ram 1024 --file=/var/lib/libvirt/images/kali.img --file-size=10 --vnc --cdrom=kali-linux-2019.2-amd64.iso

在应该看到以下内容:

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

上面提示机器已经创建成功,需要我们完成具体安装,这时候就需要VNC介入开启安装窗口了。

VNC安装kali linux

可以通过命令行

virsh vncdisplay kali

可以获得该台虚拟机vnc监听端口:

本例中为:

:1

启动安装界面

这样我们就可以通过VNC客户端(需要先下载)连接到虚拟机管理程序,比如本例中为10.0.15.240:5900 (或者10.0.15.240:1)

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

上面已经显示了kali安装界面,我们直接选择图形安装,然后按照正常安装步骤安装即可。

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

问题解决

安装步骤中在安装引导一步中报错:

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

需要在安装包设置一步骤,选择网络镜像时候选择否

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

安装后登陆中界面乱码

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

通过dpkg-reconfigure locales"。选择locals选项选中en_US.UTF-8和zh_CN.UTF-8,确定后,将en_US.UTF-8选为默认。

安装中文字库

apt install xfonts-intl-chinese

apt install ttf-wqy-microhei

KVM常见管理命令


KVM的虚拟机都是可以使用命令行管理的,此处我们简单的总结下常见命令。

virsh list:查看启动中的虚拟机

virsh list --all:列出所有虚拟机

irsh start name:启动虚拟机

virsh shutdown name:关闭虚拟机

virsh destroy name:强制关闭虚拟机

virsh suspend name:挂起虚拟机(暂停,保存运行状态)

virsh resume name:恢复挂起的虚拟机

virsh edit name:编辑虚拟机的xml配置文件

virsh undefine name:删除创建的KVM虚拟机

virsh snapshot-create name 创建快照

virsh snapshot-revert name 恢复快照

webvirtcloud管理KVM平台

虽然完全可以基于命令工具来管理KVM,但是不够直接方便。为此我们最后介绍一个通过Web管理KVM虚拟平台的系webvirtcloud。关于这个软件目前介绍还比较少,他是WebVirtMgr软件的升级版本,WebVirtMgr网上有很多文档介绍,大家可以参考学习。

安装

webvirtcloud直接安装比较费劲,为了便捷直接使用容器化方式安装。

拉取镜像:

docker pull mplx/docker-webvirtcloud:latest

docker启动:

docker run -d

-p 8080:80

-v /srv/webvirtcloud/data:/srv/webvirtcloud/data

-v /srv/webvirtcloud/ssh:/var/www/.ssh

--name webvirtcloud

mplx/docker-webvirtcloud:latest

compose方式启动,配置如下

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

启动后远程浏览器访问,默认用户密码是admin admin

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

宿主机SSH证书登陆

为了管理KVM虚拟平台需要在宿主机上创建ssh证书链接配置。首先创建一个KVM实例管理用户webvirtmgr。

adduser webvirtmgr

配置证书登陆

mkdir /home/webvirtmgr/.ssh

cd /srv/webvirtcloud/ssh/

这个/srv/webvirtcloud/ssh目录为我们管理系统容器中映射来的目录

cp id_rsa.pub /home/webvirtmgr/.ssh/authorized_keys

chmod 0600 /home/webvirtmgr/.ssh/authorized_keys

chown -R webvirtmgr:webvirtmgr /home/webvirtmgr/.ssh

将该用户添加到libvirtd管理组

usermod -a -G libvirtd webvirtmgr

为libvirt添加一条polkit策略

vim /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla

内容如下:

[libvirt group Management Access]

Identity=unix-group:libvirt

Action=org.libvirt.unix.manage

ResultAny=yes

ResultInactive=yes

ResultActive=yes

重启libvirtd服务

systemctl restarts libvirtd.service

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

注意上述步奏很重要,如果配置不对,则下一步添加实例时候会报错:

添加实例

首选我们需要添加KVM示例,默认支持4种方式,由于我们的管理系统是在容器中,我们使用SSH链接方式:

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

添加实例名称、IP地址,用户后点击ADD,就会添加了实例

实例管理

添加实例成功后就可以对实例进行配置,包括虚拟机(Instances)、存储、网络,网卡、NWFilters和密钥等

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

添加主机


选择instances标签页,点击右上"+"就可添加主机,可以使用默认6中配置,也可以custom自定义配置或者通过模版和XML文件设置配置。

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

主机管理

创建一个主机后,可以点击主机,进行主机管理界面如下图:

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

可以进行开关机Power、访问、resize扩容、镜像、设置、统计和销毁主机的操作。注意所有改变主机配置的操作,都必须在关机后才能进行。

实例监控

webvirtcloud也提供了从KVM实例到每一台虚拟主机的监控信息。

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

日志记录

webvirtcloud同样也提供了实例到主机层次的操作日志记录。

玩转虚拟化之KVM:利用VNC、webvirtcloud自建虚拟平台

总结

KVM是一个非常强大的虚拟化程序,是现代虚拟化解决方案的骨干之一。本文我们通实例详细介绍了KVM的安装配置,最后成功安装了kali linux虚拟机。还介绍了一款基于Web管理强大KVM 虚拟平台管理软件,通过这些我们可以自建和管理个性化虚拟化基础架构。

展开阅读全文

页面更新:2024-03-14

标签:宿主   平台   端口   容器   网卡   架构   虚拟机   实例   界面   命令   主机   方式   地址   科技   信息   网络

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top