kvm快速上手(ubuntu+kvm+webvirtmgr)

Posted MyThk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kvm快速上手(ubuntu+kvm+webvirtmgr)相关的知识,希望对你有一定的参考价值。

通常服务器在安装操作系统的时候,管理员会选择最小化安装,在没有GUi环境下,不方便使用virtmanager的时候,可以为服务器安装网页版虚拟机管理后台WebVirtmgr来进行KVM资源和虚拟机管理。

需要注意的是虚拟机服务和virt-manager(或webvirtmgr)服务是互相独立的,完全可以管理端安装在一台服务器,虚拟机服务安装在另一台服务器上,所以即使删除了webvirtmgr所有相关内容,相关的所有kvm资源、配置并不会受到影响,虚拟机仍然由libvirtd服务正常运行。

1. 环境准备

1.1 宿主机:Ubuntu 18.04

1.2 安装包:

apt install qemu qemu-kvm libvirt-bin bridge-utils \ git python-pip python-libvirt python-libxml2 \ novnc nginx supervisor

1.3 IP设置 :编辑/etc/netplan/50-cloud-init.yaml,并用netplan apply命令应用修改。

network: version: 2 ethernets: ens33: dhcp4: no dhcp6: no bridges: br0: interfaces: [ens33] dhcp4: no addresses: [192.168.0.11/24] gateway4: 192.168.0.1 nameservers:       addresses: [192.168.0.1] 

1.4 启动服务:如果使用virt-manager,在启用libvirtd服务后,就已经可以正常工作了

systemctl enable libvirtd && systemctl start libvirtd

2. 安装WEB控制台 - webvirtmgr

2.1 下载git项目,安装依赖

cd /var/wwwgit clone git://github.com/retspen/webvirtmgr.git
cd webvirtmgr# 安装依赖时,如果安装requirements.txt中的软件遇到下载# 困难时,可以指定服务器镜像进行安装pip install django==1.5.5 -i https://pypi.mirrors.ustc.edu.cn/simple/pip install -r requirements.txt
# 安装数据库,并收集静态文件./manage.py syncdb./manage.py collectstaticchown -R www-data /var/www

2.2 生成SSHKEY(用于web服务连接到虚拟机服务)

su -s /bin/bash www-datassh-keygenssh-copy-id root@localhostssh root@localhost # 连接一次接受指纹,或者在sshd配置中关闭StrictHostKeyChecking

2.3 设置supervisor,保持服务激活

# 配置文件/etc/supervisor/conf.d/webvirtmgr.conf[program:webvirtmgr]command=/usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /var/www/webvirtmgr/conf/gunicorn.conf.pydirectory=/var/www/webvirtmgrautostart=trueautorestart=truestdout_logfile=/var/log/supervisor/webvirtmgr.logredirect_stderr=trueuser=www-data

[program:webvirtmgr-console]command=/usr/bin/python /var/www/webvirtmgr/console/webvirtmgr-console -ddirectory=/var/www/webvirtmgrautostart=trueautorestart=truestdout_logfile=/var/log/supervisor/webvirtmgr-console.logredirect_stderr=trueuser=www-data

2.4 nginx vhost配置

server { listen 80;
server_name _; access_log /var/log/nginx/webvirtmgr_access.log; error_log /var/log/nginx/webvirtmgr_error.log;
location /static/ { root /var/www/webvirtmgr/webvirtmgr; expires max; }
location / {        proxy_pass http://127.0.0.1:8080; 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 100M        # 使用网页上传较在文件(比中操作系统镜像)时,        # 需将体积限制和超时时间限制都调大,        # 具体数值取决于上传文件大小和网络情况。 }}

2.5 启动服务

systemctl enable nginx supservisorsystemctl start nginx supervisor

3. 常用管理

3.1 添加服务器:登录nginx发布的站点,点击Add connection即可。



3.2 管理存储池:

3.2.1 建议为虚拟机硬盘镜像、ISO镜像分别建立dir类型存储池(等效于virsh pool-create-as --name vmdir_pool --type dir --target /data/vm_pool);

3.2.2 存储池准备好后,可以向ISO存储池上传系统镜像,同时也需要为新建的虚拟机创建硬盘镜像(需要为虚拟机添加几块磁盘,就创建几个硬盘镜像)。

kvm快速上手(ubuntu+kvm+webvirtmgr)

kvm快速上手(ubuntu+kvm+webvirtmgr)3.3 管理网络:分别创建Bridge网络(桥接到本机物理网络)、NAT网络(通过对虚拟机流量进行NAT转发实现联网),ISOLATE网络(隔离在KVM服务器内部的虚拟网络)。


3.4 创建虚拟机:

* webvirtmgr有一个很大的缺陷,只提供对虚拟机极为有限的修改,无法对已存在的虚拟进行设备増删和调整,而且创建的时候不能为同一个network添加多块网卡。如果碰到这种需求,只能在虚拟机停机时,进入实例的settings界面,对定义XML直接修改,或者用virsh命令进行修改

4. 关于配置

4.1 外网环境使用时,需要对外映射一个和控制台服务相同的端口,比如webvirtmgr-console使用TCP6000作为服务端口,则在外网映射TCP6000到服务器的TCP6000。

4.2 /var/www/webvirtmgr/webvirtmgr/settings.py中,可以修改服务端口、域名、证书。

WS_PORT = 6000WS_HOST = '0.0.0.0'WS_PUBLIC_HOST = "vm.mykvm.com"WS_CERT = "/etc/nginx/keys/fullchain.pem"WS_KEY = "/etc/nginx/keys/private.key"

4.3 如果 web服务的端口与服务器上已有服务产生冲突,可以到配置文件/var/www/webvirtmgr/conf/gunicorn.conf.py 中调整配置项"bind"。

以上是关于kvm快速上手(ubuntu+kvm+webvirtmgr)的主要内容,如果未能解决你的问题,请参考以下文章

如何在ubuntu命令行下下载kvm

基于Ubuntu20的qemu-kvm安装虚拟机

Ubuntu 20.04 安装kvm虚拟机

尽管 KVM 安装在 ubuntu 14.04 中,但 Android Studio 显示 KVM 错误

ubuntu下的KVM

KVM之网桥创建(ubuntu 环境)