云计算&虚拟化-kvm-webvirtmgr搭建

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

虚拟化,简单来说就是把一台服务器/PC电脑,虚拟成多台独立的虚拟机,每台虚拟机之间相互隔离,每个虚拟机都有自己独立的操作系统,磁盘,网络资源。虚拟化是一个很庞大的系统,我的介绍主要是帮助你入门,让你了解基本技术原理,具备搭建操作虚拟化的能力。由于涉及到内容较多,这里的目录就只是以简单分类介绍和说明,不再针对单个小节进行目录列出,主要涉及的分类包括以下几个方面:

1.虚拟化介绍

2.kvm基本使用(本小节属于)

3.kvm进阶使用

4.kvm技术原理

5.vmware介绍&使用

6.小结

虽然我们可以通过命令行完成kvm的使用,但是我们还是可以借助dashboard来管理多台服务器及不用记那么多命令,当然这个web管理还是有多个软件供选择,我们这里以webvirtmgr来演示。

本小节主要就是完成webvirtmgr搭建部署。

WebVirtMgr 是一个强大的基于网页的虚拟化管理工具,当然这个并不是必须的,只是方便新手使用它管理比较方便。

一、主要功能

虚拟机管理

  • 轻松创建新的虚拟机,可自定义虚拟机的名称、操作系统类型、资源分配等参数。你可以根据实际需求为虚拟机分配适量的 CPU、内存和存储资源。

  • 对已有的虚拟机进行启动、停止、暂停、恢复等操作。当你需要对虚拟机进行维护或出现故障时,可以方便地控制其状态。

  • 实时监控虚拟机的运行状态,包括 CPU 使用率、内存使用情况、网络流量等。这样你可以随时了解虚拟机的资源消耗情况,以便进行合理的调整。

存储管理

  • 管理虚拟机的存储设备,如添加、删除硬盘或存储卷。你可以根据虚拟机的存储需求灵活地调整存储配置。

  • 支持多种存储类型,如本地存储、网络存储(NFS、iSCSI 等)。这使得你可以根据实际情况选择最适合的存储方案。

网络管理

  • 配置虚拟机的网络连接,包括设置 IP 地址、子网掩码、网关等。你可以为虚拟机分配静态 IP 地址或使用 DHCP 动态获取 IP 地址。

  • 支持虚拟网络的创建和管理,可实现虚拟机之间的网络隔离或互通。这对于构建复杂的网络环境非常有用。

二、部署介绍

这里的部署是和kvm主机分开的,是独立部署在一台服务器上。

服务器IP

角色

192.168.31.203

kvm宿主机

192.168.31.204

webvirtmgr管理机

1.服务器初始化

过程略,可参考Linux系统-初始化

2.安装部署

2.1 安装epel源

arduino 复制代码
yum install -y epel-release

2.2 安装基础软件

yum install -y gcc python-devel openssl-devel  install git python-pip libvirt-python libxml2-python python-websockify supervisor nginx

2.3 安装numpy(选装)

如果不使用浏览器进入系统,则可不安装这个软件包。

shell 复制代码
#默认2.7是无法安装这个包的pip install numpy 
#可手动去下载安装,但是最新版不兼容https://pypi.org/project/numpy/#files
# 这里找了旧版本可使用https://pypi.tuna.tsinghua.edu.cn/packages/c4/33/8ec8dcdb4ede5d453047bbdbd01916dbaccdb63e98bba60989718f5f0876/numpy-1.16.2-cp27-cp27mu-manylinux1_x86_64.whl#sha256=fb3c83554f39f48f3fa3123b9c24aecf681b1c289f9334f8215c1d3c8e2f6e5b
# 安装
pip install ./numpy-1.16.2-cp27-cp27mu-manylinux1_x86_64.whl

2.4 下载webvirtmgr

bash 复制代码
#如果无法下载可私信我获取软件包
cd /usr/local
git clone git://github.com/retspen/webvirtmgr.git

2.5 安装webvirtmgr依赖包

bash 复制代码
cd webvirtmgr
#如果不使用国内源,则会提示tls问题。
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

2.6 初始化数据库

bash 复制代码
./manage.py syncdb

2.7 复制静态文件

bash 复制代码
./manage.py collectstatic

2.6 配置nginx

bash 复制代码
#先删除默认的nginx80端口配置,这个是我删除以后配置
vi /etc/nginx/nginx.conf
ini 复制代码
# 配置webvirtmgr的web服务,web.conf名字可以任取
vi /etc/nginx/conf.d/web.conf

server {
    listen 80 default_server;
    server_name _;
    #access_log /var/log/nginx/webvirtmgr_access_log;
    location /static/ {
        root /usr/local/webvirtmgr; # or /srv instead of /var
        expires max;
    }
    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_connect_timeout 600;
        proxy_read_timeout 600;
        proxy_send_timeout 600;
        client_max_body_size 1024M; # Set higher depending on your needs
    }
}

2.7 启动nginx

bash 复制代码
#先检查配置文件是否正确
nginx -t
#启动nginx
systemctl start nginx
systemctl enable nginx

2.8 启动python

bash 复制代码
#如果不想配置supervisor,则用该命令前台启动就可以输入该服务器的80端口访问
python /usr/local/webvirtmgr/manage.py run_gunicorn -c /usr/local/webvirtmgr/conf/gunicorn.conf.py

#配置supervisor,我们将放到下一小节。

2.9 登录webvirtmgr

csharp 复制代码
#以当前webvirtmgr机器对应的ip为准。
#这里的账号密码就是2.6 初始化配置的账号密码。
http://192.168.31.204

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

相关推荐
摸鱼也很难1 小时前
Docker 镜像加速和配置的分享 && 云服务器搭建beef-xss
运维·docker·容器
watermelonoops1 小时前
Deepin和Windows传文件(Xftp,WinSCP)
linux·ssh·deepin·winscp·xftp
woshilys2 小时前
sql server 查询对象的修改时间
运维·数据库·sqlserver
疯狂飙车的蜗牛2 小时前
从零玩转CanMV-K230(4)-小核Linux驱动开发参考
linux·运维·驱动开发
恩爸编程3 小时前
探索 Nginx:Web 世界的幕后英雄
运维·nginx·nginx反向代理·nginx是什么·nginx静态资源服务器·nginx服务器·nginx解决哪些问题
Michaelwubo5 小时前
Docker dockerfile镜像编码 centos7
运维·docker·容器
远游客07135 小时前
centos stream 8下载安装遇到的坑
linux·服务器·centos
马甲是掉不了一点的<.<5 小时前
本地电脑使用命令行上传文件至远程服务器
linux·scp·cmd·远程文件上传
jingyu飞鸟5 小时前
centos-stream9系统安装docker
linux·docker·centos
好像是个likun5 小时前
使用docker拉取镜像很慢或者总是超时的问题
运维·docker·容器