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
  1. 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進行連接。解決辦法有

  1. 映射宿主機libvirtsock到容器內進行本地連接
  2. 配置libvirt爲TCP連接
  3. 配置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遠程連接賬戶一定要有密碼,不然是連不上的。

4.2安裝Linux

這個更加簡單,完全不用去找驅動,一路裝下去就行了,就不演示了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章