ubuntu16.04下的kvm+libvirt+webvirtmgr虚拟机配置

目录

1简介

1.1效果图

1.1.1win10虚机

1.1.2Ubuntu虚机

2.安装

2.1安装kvm+libvirt等

2.2安装webvirtmgr

3.配置

3.1Libvirt配置Tcp监听

3.2修改webvirtmgr登陆密码

3.2.1修改用户登陆密码(可选)

3.2.2重新创建用户(删除原来的admin账户,可选)

4安装系统

4.1win10安装

4.2安装Linux
1简介

kvm+libvirt+webvirtmgr是一个轻量级web虚拟机,能够在linux上安装windows或者其他的linux虚机。kvm是Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,负责虚拟系统。libvirt用于管理虚拟化平台的开源的API,后台程序和管理工具。它可以用于管理KVM、Xen、VMware ESX,QEMU和其他虚拟化技术,可以看做一个管家。webvirtmgr能连接libvirt进行web的管理,其中webvirtmgr集成了noVNC能够直接进行界面的操作。相当于轻量的OpenStack。
1.1效果图
1.1.1win10虚机

1.1.2Ubuntu虚机

2.安装
2.1安装kvm+libvirt等

我们就不从源码安装了,直接apt

apt-get install kvm libvirt bridge-utils virt-manager qemu-kvm-tools virt-viewer

    bridge-utils用于构建桥接网络,kvm虚机一般都是NAT模式,如果需要局域网里的机子也能访问就要配置桥接。

2.2安装webvirtmgr

web应用我都习惯使用docker安装,不影响宿主机环境

安装docker,并设置自启动,并开启服务

    apt-get install docker
    systemctl enable docker
    service docker start

拉取webvirtmgr镜像,运行为实例并起名为web,映射8080,6080端口到宿主机(8080是web,6080noVNC),非正常关闭(宿主机断电等)自动启动,尝试三次

docker run --name web -p 8080:8080 -p 6080:6080 --restart=on-failure:3 jieshao/web_kvm:onlyweb

 第一次构建实例后,快捷键Ctrl+C终止,然后输入以下命令重新启动

docker start web

该docker的dockerfile https://github.com/LY1806620741/web_kvm
3.配置
3.1Libvirt配置Tcp监听

由于webvirtmgr运行在docker里,无法直接通过libvirt的默认sock连接方式通过/var/run/libvirt/libvirt-sock进行连接。解决办法有

    映射宿主机libvirtsock到容器内进行本地连接
    配置libvirt为TCP连接
    配置docker-webvirtmgr通过ssh直接登录宿主机进行操作(不推荐,宿主机要存ssh公钥)

在这里我用TCP连接

配置libvirt为tcp连接,sed命令作用替换文本

    sed -i 's/#listen_tls = 0/listen_tls = 0/g' /etc/libvirt/libvirtd.conf
    sed -i 's/#listen_tcp = 1/listen_tcp = 1/g' /etc/libvirt/libvirtd.conf
    sed -i 's/#auth_tcp = "sasl"/auth_tcp = "none"/g' /etc/libvirt/libvirtd.conf

 配置libvirt-bin服务监听tcp

vi /etc/default/libvirt-bin 修改为libvirt_opts = "-d -l" 增加-l监听tcp

重新启动libvirt-bin服务 (将会监听16509端口)

service libvirt-bin restart

配置桥接模式网桥,增加br0网桥

brctl addbr br0

配置br0网桥桥接网卡(ubuntu16以上还支持/etc/network/interface,但是推荐与时俱进,netplan文件夹下的名字可能不同)

    cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
    sudo vi /etc/netplan/50-cloud-init.yaml

红框是添加的,br0是之前添加的网桥名,br0网桥接管了ens3网卡,将ens3的配置复制一份到br0网桥就行了

例子二

配置前是固定ip

配置后

然后检查配置并应用(如果没有出错,按回车就应用了,如果网络爆炸了,他会在30s后还原设置)

netplan try --timeout 30

等待一段时间network重启后,使用ip addr就能看到br0网桥启动了
3.2修改webvirtmgr登陆密码

开启webvirtmgr

docker start web

 进入容器的命令行

docker exec -it web /bin/bash

3.2.1修改用户登陆密码(可选)

修改admin密码

/webvirtmgr/manage.py changepassword admin

Ctrl+P+Q(不关闭容器退出容器,exit会退出且关闭)
3.2.2重新创建用户(删除原来的admin账户,可选)

进入webvirtmgr的sqllite数据库

/webvirtmgr/manage.py dbshell

 查看表

sqlite> .table

 

sqlite> select * from auth_user;

删除所有用户

Delete from auth_user;

或者根据id删除

Delete from auth_user where id=1;

退出数据库然后创建新用户

    sqlite> .exit
    [root@67bb95bd5cbf webvirtmgr]# /webvirtmgr/manage.py createsuperuser

 输入用户名,邮箱,密码,确认密码,然后Ctrl + P + Q不关闭容器退出
4安装系统
4.1win10安装

登陆webvirtmgr

浏览器访问宿主机ip:8080(默认验证 admin,admin)

我已经添加了,add connections,填宿主机的ip,根据docker的network设置有关,一般是webvirtmsg的docker的网关。

点进去添加储存池(用于存放虚拟机磁盘映像和安装镜像iso等)

然后点击创建的储存池,并添加虚拟机磁盘映像

上传iso安装包,和virtio驱动包(虚拟化驱动,不然认识不了虚拟化的磁盘网卡等,提供了下载地址,自己找也行)

下载好PE,WIN10镜像,virtio驱动包

并放到ubuntu宿主机的储存池路径下

可以在windows下载好再传到宿主机(小文件可以用lrzsz,大文件4G以上的用scp命令,或者构建一个http文件上传服务器),也可以在ubuntu宿主机上直接下载,这时候八仙过海各显神通拉。

添加网络池

之前配置的桥接网卡可以起到作用了

可以看到我有两个连接方式

新建实例

连接安装光盘

开机

然后就是这个页面,不用说了吧

然后就是没有驱动了

把光盘换成virtio驱动盘

选择光盘->viostor->w10->amd64(我装的是64位win10)

怎么办,把光盘换回win10安装盘然后刷新

我分配的盘太小了。。反正用来测试的

novnc有点卡,桥接网络派上用场, win10开启远程桌面支持,我们用远程桌面去连接

如果无法连接,重启宿主机(有可能连不上网,ssh进不去,只能用显示器和键盘去调试,多试试netplan try,这个命令也不能100%检查正确),很可能是你的网桥配置有问题。还有要注意win10远程连接账户一定要有密码,不然是连不上的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值