KVMRocky创建KVM虚拟机的全过程

编辑网卡信息

配置本地IP

  • 编辑网卡配置文件
vim '网卡配置文件'
[ethernet]
method=manual
address1=10.4.220.100/24,10.4.220.1
  • 在Ubuntu上测试连通性
root@WaitAyaka:/home/waitayaka/桌面# ping 10.4.220.100
PING 10.4.220.100 (10.4.220.100) 56(84) bytes of data.
64 bytes from 10.4.220.100: icmp_seq=1 ttl=63 time=1.66 ms
64 bytes from 10.4.220.100: icmp_seq=2 ttl=63 time=1.66 ms
64 bytes from 10.4.220.100: icmp_seq=3 ttl=63 time=1.62 ms
64 bytes from 10.4.220.100: icmp_seq=4 ttl=63 time=1.68 ms
64 bytes from 10.4.220.100: icmp_seq=5 ttl=63 time=1.73 ms

Ubuntu远程连接

比赛的时候PC是Ubuntu 所以我们还是要配置以下远程连接 使得可以在Ubuntu远程操控

  • Rocky上的配置
  1. 编辑/etc/ssh/sshd_conf文件 允许使用root用户进行SSH
40 PermitRootLogin yes
  1. 重启ssh服务
systemctl restart sshd
  • Ubuntu上的配置
root@WaitAyaka:/home/waitayaka/桌面# ssh 10.4.220.100
root@10.4.220.100's password: //输入root用户的密码
Activate the web console with: systemctl enable --now cockpit.socket
Last failed login: Tue Apr 23 09:24:05 EDT 2024 on pts/0
There were 8 failed login attempts since the last successful login.
Last login: Mon Mar 20 00:24:56 2023 from 10.4.11.100

[root@10-4-220-100 ~]#

配置网络源仓库

网络源仓库也是相当重要的这是我们KVM创建虚拟机的软件仓库 可以远程之后在Rocky上进行以下操作

  1. 下载相关软件包
yum install -y httpd*
  1. 将镜像挂载到/var/www/html/cdrom下面
mkdir /var/www//html/cdrom -p
mount /opt/rocky9.2.iso /var/www/html/cdrom
  1. 编辑cdrom目录权限
vim /etc/httpd/conf/httpd.conf359 <Directory "/var/www/html">
· 最后添加以下参数
360 Require all granted
361 Options Indexes FollowSymLinks
362 AllowOverride ALL
363 </Directory>
  1. 重启服务 关闭防火墙
systemctl enable --now httpd;systemctl stop firewalld;setenforce 0
  1. 在浏览器上访问测试

image-20240424104036246

配置管理桥接网卡

现在我们需要做的是在Rocky上配置好KVM虚拟机需要桥接的网卡 使得Ubuntu可以连接到KVM虚拟机

添加桥接网卡

nmcli c add type brigde ifname br0

将本地网卡连接至桥接网卡

nmcli  c add type bridge-slave ifname `被桥接的网卡` master br0

编辑网卡IP地址

  • slave 本地网卡 这里的bridge-slave-enp0s20f0u3u2.nmconnection是我的本地网卡名称 每个人的可能不一样
vim /etc/NetworkManager/system-connections/bridge-slave-enp0s20f0u3u2.nmconnection
9 [ethernet]
10 method=auto //将method模式改为auto 表示自动获取IP
  • bridge 桥接网卡
vim /etc/NetworkManager/system-connections/bridge-br0.nmconnection
12 method=manual
13 address1=10.4.220.100/24,10.4.220.1 //这里设置为题目要求的IP 23国赛为10.4.220.100

重启网卡

[root@10-4-220-100 ~]# nmcli c up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/10)
[root@10-4-220-100 ~]# nmcli c up bridge-br0
连接已成功激活(master waiting for slaves)(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/11)

查看所有网卡信息

br0:已连接 到 bridge-br0
"br0"
bridge, 00:E0:4C:36:23:31, 软件, mtu 1500
ip4 默认
inet4 10.4.220.100/24
route4 10.4.220.0/24 metric 425
route4 default via 10.4.220.1 metric 425
inet6 fe80::fe9b:d788:6ce:bd87/64
route6 fe80::/64 metric 1024

lo:连接(外部) 到 lo
"lo"
loopback (unknown), 00:00:00:00:00:00, 软件, mtu 65536
inet4 127.0.0.1/8
inet6 ::1/128
route6 ::1/128 metric 256

enp0s20f0u3u2:已连接 到 bridge-slave-enp0s20f0u3u2
"Realtek RTL8152"
ethernet (r8152), 00:E0:4C:36:23:31, 硬件, mtu 1500
主连接 br0

创建KVM虚拟机

现在就可以来创建虚拟机了 最好还是在Ubuntu的默认终端下SSH Rocky

下载相关服务软件

yum install -y libvirt* virt* bash-* qemu*

开放相关服务 关闭防火墙

systemctl restart libvirtd;systemctl stop firewalld;setenforce 0

创建实例

virt-install --name linux0 --ram 2048 --vcpus 2 --disk path=/var/lib/libvirt/images/linux0.qcow2,size=40 --os-variant auto --network bridge=br0 --cdrom /opt/rocky9.2.iso --graphics vnc,listen=0.0.0.0 

image-20240424101820775

等到这个界面的时候我们就可以打开Remmina了

image-20240424102031446

  • 下面是连接成功的样子 安装摘要的时候选择最小安装!!!

image-20240424102123987

虚拟机的快照及批量创建

在KVM虚拟机上的第一步就是尝试与外界的互ping 为了测试 我们在linux0上添加IP地址

  1. 编辑好Linux0的网卡 尝试互ping
[root@10-4-220-100 ~]# ping 10.4.220.101
PING 10.4.220.101 (10.4.220.101) 56(84) 比特的数据。
64 比特,来自 10.4.220.101: icmp_seq=1 ttl=64 时间=0.657 毫秒
64 比特,来自 10.4.220.101: icmp_seq=2 ttl=64 时间=0.494 毫秒

可以ping通 说明网桥的配置没有问题 接下来我们配置一下yum源

  • 指定软件仓库地址
rm -rf /etc/yum.repos.d/*
vi /etc/yum.repos.d/yum.repo

[A]
name=A
baseurl=http://10.4.220.100/cdrom/AppStream
gpgcheck=0
enabled=1
[B]
name=B
baseurl=http://10.4.220.100/cdrom/BaseOS
gpgcheck=0
enabled=1
  • 下载需要的服务
yum install -y vim bind* net-tools* tar* unzip*

image-20240424104501638

创建快照

现在下载好了需要的一些服务后 我们就可以创建快照来批量创建虚拟机了

  • 创建快照模板
[root@10-4-220-100 ~]# virsh snapshot-create-as linux0 linux-snapshot
已生成域快照 linux-snapshot
  • 利用快照创建虚拟机
`利用快照创建虚拟机首先要关闭快照其虚拟机`
virsh shutdown linux0
`现在就可以创建了`
virt-clone --original linux0 --name linux1 --file /var/lib/libvirt/images/linux1.qcow2 --auto-clone

image-20240424105015273

查看虚拟机列表

[root@10-4-220-100 ~]# virsh list --all
Id 名称 状态
---------------------
- linux0 关闭
- linux1 关闭

重启虚拟机

[root@10-4-220-100 ~]# virsh start linux1
域 'linux1' 已启动

image-20240424105507057

基本上这就是全部的工作了 只需要把剩余的虚拟机创建好就行了 最后我们试着再次互ping测试连通信

  • 设置Linux1的IP地址为10.4.220.101
waitayaka@WaitAyaka:~/桌面$ ping 10.4.220.101
PING 10.4.220.102 (10.4.220.102) 56(84) bytes of data.
64 bytes from 10.4.220.101: icmp_seq=1 ttl=63 time=3.73 ms
64 bytes from 10.4.220.101: icmp_seq=2 ttl=63 time=2.09 ms
64 bytes from 10.4.220.101: icmp_seq=3 ttl=63 time=1.99 ms
64 bytes from 10.4.220.101: icmp_seq=4 ttl=63 time=2.09 ms