作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
虚拟化,简单来说就是把一台服务器/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
运维小路
一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!
关注微信公众号《运维小路》获取更多内容。