0
点赞
收藏
分享

微信扫一扫

基于KVM和WebVirtCloud部署私有云的过程记录


KVM(Kernel-based Virtual Machine 的缩写)是一个 Linux 虚拟化应用程序,它使用户能够将他们的机器变成管理程序并在隔离的环境中运行多个虚拟机。

WebVirtCloud是一个供管理员和用户使用的虚拟化 Web 界面。它可以将虚拟机委托给用户。noVNC 查看器向来宾域提供完整的图形控制台。 KVM是目前唯一支持的管理程序。

本次是一台物理机服务器上部署KVM,然后在KVM虚拟机上WebVirtCloud对KVM进行管理。

物理机IP:192.168.*.71

虚拟机IP:192.168.*.70

Ps:以下部署方式在CentOS Stream 8AnolisOS-8.4openEuler -22.03通过测试。

一、部署KVM主机

1、服务器环境检测

查看服务器及操作系统版本信息,WebVirtCloud只支持内内核4.0以上版本。

#uname -a

基于KVM和WebVirtCloud部署私有云的过程记录_私有云

#uname -r

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_02

#cat /etc/redhat-release

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_03

Ps:openEulercat /etc/os-release


检查环境是否支持KVM

#cat /proc/cpuinfo | egrep "vmx|svm"

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_04

在输出中,查看标志列表。如果发现vmx(对于 Intel 处理器)或svm (对于 AMD),则系统支持硬件虚拟化。

2、部署KVM

升级系统

#dnf -y update

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_05

查看是否加载KVM

#lsmod | grep kvm

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_06

关闭防火墙

#sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_07

#systemctl disable --now firewalld

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_08

使用groupinstall一次性安装KVM虚拟化组件

#yum groupinstall "Virtualization Host"

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_09

安装libvirt

#yum install libgcrypt virt-install

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_10

启用libvirt

#systemctl start libvirtd-tcp.socket

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_11

#systemctl enable libvirtd-tcp.socket

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_12

#systemctl status libvirtd-tcp.socket

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_13

#systemctl start libvirtd

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_14

#systemctl enable libvirtd

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_15

#systemctl status libvirtd

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_16

查看版本信息

#virsh version

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_17

3、配置桥接网卡

KVM虚拟机的网络配置有两种模式:桥接模式和NAT模式。NAT模式:用户模式,数据包由NAT方式通过主机的接口进行传送,可以访问公网,但是无法从外部访问虚拟机网络,KVM部署时默认配置NAT网卡;。Bridge:桥接模式,这种模式允许虚拟机像一个独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,需要单独配置。

查看网卡

#ip addr

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_18

查看当前网络连接

#nmcli connection

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_19

新建网桥,命名为:br0

# nmcli connection add type bridge con-name br0 ifname br0 autoconnect yes

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_20

查看新建网桥后连接信息

# nmcli connection

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_21

网桥br0桥接至网卡eno1

# nmcli connection add type bridge-slave ifname eno1 master br0

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_22

#cd /etc/sysconfig/network-scripts/

#ll

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_23

#cat ifcfg-bridge-slave-eno1

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_24

# cat ifcfg-br0

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_25

修改bro为静态IP:192.168.*.71

#vi ifcfg-br0

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_26

同时,修改eno1为的ip,不要冲突。

#vi ifcfg-eno1

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_27

查看当时网络信息,新建网桥未启用

# nmcli connection

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_28

重启操作系统

#reboot

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_29

# nmcli connection

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_30

查看当前网络信息,新建网桥已经可以使用了。

#ip addr

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_31

4、创建存储目录

KVM主机上创建虚拟机和ISO镜像存储目录,位置没有要求,本次安装,笔者是存在KVM主机的/home/kvmadmin/目录下。在kvmadmin目录下新建kvm、iso目录,kvm用于存储虚拟机安装文件,iso应存储镜像文件。

#mkdir /home/kvmadmin/kvm /home/kvmadmin/iso

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_32

修改权限:

#chmod 777 /home/kvmadmin

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_33

二、部署WebVirtCloud虚拟机

1、上传或者网上下载操作系统镜像

上传或者下载操作系统镜像至iso,本次测试的镜像是CentOS-Stream-8-x86_64-latest-dvd1.iso,从清华大学源网上下载:

#wget -U NoSuchBrowser/1.0 -P /home/kvmadmin/iso https://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/isos/x86_64/CentOS-Stream-8-x86_64-latest-dvd1.iso

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_34

2、部署WebVirtCloud虚拟机操作系统

(1)创建虚拟磁盘

创建虚拟磁盘,将虚拟磁盘放在kvm目录

#qemu-img create -f qcow2 /home/kvmadmin/kvm/WebVirtCloud.qcow2 200G

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_35

Ps:虚拟磁盘有raw和qcow2两种格式。raw相当于SSD硬盘,占用实际空间固定,支持虚拟化操作较少qcow2相当于机械硬盘,占用空间随使用增长,支持虚拟化操作较。本次采用qcow2格式。

(2)安装操作系统

本次测试安装的centos-stream8操作系统:

#virt-install --name=WebVirtCloud --vcpus=8 --memory=4096 --disk=/home/kvmadmin/kvm/WebVirtCloud.qcow2 --cdrom=/home/kvmadmin/iso/CentOS-Stream-8-x86_64-latest-dvd1.iso --os-variant=centos-stream8 --noautoconsole --autostart --network bridge=br0 --graphics vnc,listen=0.0.0.0,port=5901

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_36

Ps:virt-install --name=安装名称--vcpus=处理器核心个数 --memory=内存大小--disk=磁盘位置--os-variant 要安装到客户机中的操作系统,--noautoconsole 不自动连接控制-autostart--network配置虚拟机网络接口,此处为桥接到br0--graphics控制模式,listien=监听地址,port=监听端口

VNC连接

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_37

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_38

操作系统的安装及配置,此处不讲解,虚拟机的ip地址为:192.168.*.70,并将主机名设为WebVirtCloud

Ps:操作系统安装完成后,需要重启系统,但系统可能不会自动重启,需要手动去启动。

查看所有虚拟机列表

#virsh listall

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_39

#virsh start WebVirtCloud

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_40

VNC登录

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_41

配置虚拟机IP地址为:192.168.*.70,主机名设为:WebVirtCloud

Ps:virsh生命周期管理

关机指令

#virsh shutdown VMACHINE_NAME

断电指令

#virsh destroy VMACHINE_NAME

开机指令

#virsh start VMACHINE_NAME

重启指令

#virsh reboot VMACHINE_NAME

删除虚拟机

# virsh undefine VMACHINE_NAME

查看VNC端口

# virsh vncdisplay VMACHINE_NAME

三、部署WebVirtCloud

1、虚拟机环境检测

登录WebVirtCloud虚拟机,并对操作系统进行升级:

#dnf -y update

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_42

部署WebVirtCloud,需要Ubuntu18.04/20.04,Debian10/11, Centos/OEL/RHEL 8环境

#cat /etc/redhat-release

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_43

2、部署WebVirtCloud

关闭防火墙

#sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_44

#systemctl disable --now firewalld

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_45

安装epel源

#yum -y install epel-release

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_46

安装依赖环境

#yum -y install python3-virtualenv python3-devel libvirt-devel glibc gcc nginx supervisor python3-lxml git python3-libguestfs iproute-tc cyrus-sasl-md5 python3-libguestfs

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_47

克隆webvirtcloud仓库

#cd /srv &&git clone https://github.com/retspen/webvirtcloud && cd webvirtcloud

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_48

#pip3 install -i https://mirrors.ustc.edu.cn/pypi/web/simple pip -U

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_49

#pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_50

#pip install -U setuptools virtualenv

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_51

创建虚拟环境

#cp webvirtcloud/settings.py.template webvirtcloud/settings.py

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_52

#virtualenv -p $(which python3) /srv/envs/webvirtcloud

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_53

激活python虚拟机

#source /srv/envs/webvirtcloud/bin/activate

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_54

随机生成字符串

#python /srv/webvirtcloud/conf/runit/secret_generator.py

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_55

添加到SECRET_KEY中

#vi /srv/webvirtcloud/webvirtcloud/settings.py

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_56

安装第三方仓库

#cd /srv/webvirtcloud/&&pip install -r conf/requirements.txt

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_57

迁移数据

#python manage.py makemigrations

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_58

#python manage.py migrate

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_59

编辑supervisord(后端应用作为supervisord子进程管理)

#vi /etc/supervisord.d/webvirtcloud.ini

[program:webvirtcloud]

command=/srv/envs/webvirtcloud/bin/gunicorn webvirtcloud.wsgi:application -c /srv/webvirtcloud/gunicorn.conf.py

directory=/srv/webvirtcloud

user=root

autostart=true

autorestart=true

redirect_stderr=true


[program:novncd]

command=/srv/envs/webvirtcloud/bin/python /srv/webvirtcloud/console/novncd

directory=/srv/webvirtcloud

user=root

autostart=true

autorestart=true

redirect_stderr=true

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_60

添加网站目录权限

#chown -R nginx:nginx /srv/webvirtcloud

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_61

supervisord服务操作

#systemctl enable --now supervisord

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_62

#supervisorctl reload

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_63

#supervisorctl update

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_64

#supervisorctl restart all

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_65

将配置拷贝到nginx目录中

#cp conf/nginx/webvirtcloud.conf /etc/nginx/conf.d/

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_66

配置nginx.conf

#vi /etc/nginx/nginx.conf

注释默认虚拟机

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_67

设置nginx开机启动:

systemctl enable nginx

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_68

重启操作系统

#reboot

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_69

浏览器访问:​​http://192.168.*.70​​,默认账号/密码:admin/admin

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_70

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_71

四、WebVirtCloud配置与使用

1、添加计算节点(即KVM主机)

1)配置免密登录

WebVirtCloud虚拟机上配置免密登录。

生成密钥对

#ssh-keygen -t rsa

(连续三次回车,即在本地生成了公钥和私钥,不设置密码,默认存储在 ~/.ssh目录下)

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_72

关闭公钥检查

#cat > ~/.ssh/config << EOF

Host *

StrictHostKeyChecking no

EOF

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_73

修改权限

#chmod 600 ~/.ssh/config

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_74

(2)推送公钥

将生成的公钥推送到KVM主机。

#ssh-copy-id root@192.168.*.71

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_75

验证:

#ssh root@192.168.*.71

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_76

3)添加计算节点

浏览器登录WebVirtCloud:http://192.168.*.70

计算节点->ssh

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_77

填写节点名称、IP、登录用户等信息,然后保存

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_78

显示已连接

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_79

点击“概览”图标进入节点

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_80

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_81

2、创建存储目录

新建存储:存储->“+”图标:

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_82

创建文件目录:

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_83

创建ISO镜像目录:

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_84

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_85

3、虚拟机实例实例管理

1)创建实例

创建虚拟机实例

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_86

默认即可

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_87

本次测试选media模板。

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_88

Ps:可以自定义和新建模板。

创建虚拟机

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_89

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_90

2)调整配置及操作系统安装

调整配置:可调整磁盘大小、内存大小、CPU数量。

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_91

快照:可以创建快照、管理快照

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_92

设置:可配置启动(自动启动、启动顺序)、磁盘、控制台、网络、克隆、迁移、用户等。

为虚拟机实例增加网络

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_93

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_94

添加完成后,是2个网卡,如下图:

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_95

挂在操作系统镜像:

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_96

挂在完成,如下图:

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_97

开启虚拟机实例

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_98

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_99

控制台

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_100

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_101

系统安装就赘述了。

(3)查看虚拟机状态

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_102

4)删除虚拟机

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_103

4、用户管理

(1)用户组管理

添加用户组

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_104

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_105

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_106

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_107

可对用户组进行编辑和删除

2)管理用户

添加用户

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_108

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_109

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_110

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_111

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_112

可对用户进行编辑和删除

(3)给用户分配虚拟机实例

基于KVM和WebVirtCloud部署私有云的过程记录_WebVirtCloud_113

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_114

基于KVM和WebVirtCloud部署私有云的过程记录_私有云_115

test登录,即可看到拥有的虚拟机实例:

基于KVM和WebVirtCloud部署私有云的过程记录_kvm_116

举报

相关推荐

0 条评论