四、 Linux 云服务配置
1、系统安装
- 使用PC1浏览器连接server2,给server2安装rocky-arm64CLI系统(语言为英文)。配置server2服务器地址为192.168.3.20/24。
- 安装qemu-kvm、libvirt和virt-install。
- 创建rocky-arm64虚拟机,虚拟机磁盘文件保存在默认目录,名称为 linuxN.img(N表示虚拟机编号0-6,如虚拟机linux1的磁盘文件为linux1.img),虚拟机信息如下:
|-----------|----------|--------|--------|-------------------------------------|----------|
| 虚拟机名称 | vcpu | 内存 | 磁盘 | IPv4 地址 | 主机名称 |
| linux0 | 2 | 4096MB | 100GB | none | |
| linux1 | 2 | 4096MB | 100GB | 200.203.30.101/24 | linux1 |
| linux2 | 2 | 4096MB | 100GB | 200.203.30.102/24 | linux2 |
| linux3 | 2 | 4096MB | 100GB | 200.203.10.103/24 200.203.30.103/24 | linux3 |
| linux4 | 2 | 4096MB | 100GB | 200.203.40.104/24 | linux4 |
| linux5 | 2 | 4096MB | 100GB | 200.203.40.105/24 | linux5 |
| linux6 | 2 | 4096MB | 100GB | 200.203.40.106/24 | linux6 |
- 安装linux0,系统为rocky9CLI,网络模式为桥接模式,用户root密码为
Key-1122。根据linux0克隆虚拟机linux1-linux6。
1. 配置 Server2 IP 地址
假设 Server2 的物理网卡名称为 eth0(根据实际情况可能是 eno1 或 enp1s0,请使用 ip addr 查看)。
# 设置静态 IP
nmcli connection modify "eth0" ipv4.addresses 192.168.3.20/24 ipv4.gateway 192.168.3.1 ipv4.dns 114.114.114.114 ipv4.method manual connection.autoconnect yes
# 激活配置
nmcli connection up "eth0"
2. 配置网络桥接 (Bridge)
题目要求虚拟机使用"桥接模式",且虚拟机 IP 段(200.203.x.x)与宿主机(192.168.3.x)不同,通常需要在宿主机创建一个物理桥接网卡 br0。
# 创建网桥 br0
nmcli connection add type bridge con-name br0 ifname br0
# 将物理网卡 eth0 绑定到网桥(注意:这会导致 eth0 失去 IP,IP 应配置在 br0 上,或者根据比赛环境,eth0做管理口,br0绑定另一个物理口。此处假设单网卡环境,将宿主机IP转移到br0)
nmcli connection modify "eth0" master br0
# 将宿主机 IP 配置在 br0 上
nmcli connection modify br0 ipv4.addresses 192.168.3.20/24 ipv4.method manual
nmcli connection up br0
(注:如果比赛环境要求物理网卡 eth0 单独走管理网,虚拟机走另一个物理网卡 eth1,请将 br0 绑定到 eth1)
第二阶段:安装虚拟化组件
1. 安装 qemu-kvm, libvirt 和 virt-install
# 安装虚拟化相关包
dnf install -y qemu-kvm libvirt virt-install
# 启动 libvirtd 服务并设置开机自启
systemctl enable --now libvirtd
# 验证安装 (ARM64架构下应显示 qemu-system-aarch64)
virsh version
第三阶段:创建模板虚拟机 linux0
题目要求:Rocky 9 CLI,2vCPU,4G内存,100G磁盘,文件名为 linux0.img,桥接模式。
1. 准备镜像
确保 /opt 或 /var/lib/libvirt/images/ 下有 Rocky 9 ARM64 的 ISO 镜像文件。
2. 创建磁盘文件
默认目录通常为 /var/lib/libvirt/images/。
qemu-img create -f qcow2 /var/lib/libvirt/images/linux0.img 100G
3. 使用 virt-install 安装 linux0
virt-install \
--name linux0 \
--vcpus 2 \
--memory 4096 \
--disk path=/var/lib/libvirt/images/linux0.img,format=qcow2,size=100 \
--network bridge=br0 \
--os-variant rocky9 \
--location /opt/Rocky-9.0-aarch64-dvd.iso \
--initrd-inject=/opt/ks.cfg \
--extra-args="inst.ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8" \
--graphics none
-
注意:
-
--graphics none和console=ttyS0是因为通常服务器环境没有图形界面,使用串口安装。 -
如果你没有准备
ks.cfg自动应答文件,可以去掉initrd-inject和extra-args中的 ks 部分,通过 VNC 连接进行手动安装。 -
手动安装时,务必设置 Root 密码为 Key-1122。
-
4. 模板机封装 (Sysprep)
在克隆之前,进入 linux0 清除机器 ID 和网络配置,确保克隆后不会冲突。 (进入 linux0 虚拟机内部执行):
# 清除 machine-id
cat /dev/null > /etc/machine-id
rm -f /var/lib/dbus/machine-id
# 清除网卡配置(如果有残留)
nmcli connection delete "enp1s0" # 根据实际网卡名
# 关机
poweroff
第四阶段:克隆与配置 (linux1 - linux6)
1. 克隆虚拟机
使用 virt-clone 基于 linux0 克隆出其他 6 台机器。
# 批量克隆脚本逻辑(也可以手动执行6次)
for i in {1..6}; do
virt-clone --original linux0 \
--name linux$i \
--file /var/lib/libvirt/images/linux$i.img
done
特殊处理 linux3 : linux3 有两个 IP 地址(200.203.10.x 和 200.203.30.x),这通常意味着它需要两张网卡或者单网卡双 IP。为了规范,建议给 linux3 增加一块网卡。
virsh attach-interface --domain linux3 --type bridge --source br0 --model virtio --config --live
2. 配置主机名和 IP 地址
你需要启动每台虚拟机并配置网络。可以通过 virsh console linuxN 进入控制台配置。
通用配置命令 (在虚拟机内部执行):
# 设置主机名
hostnamectl set-hostname linuxN
# 设置 IP (以 linux1 为例)
nmcli con add type ethernet con-name eth0 ifname enp1s0 ipv4.addresses 200.203.30.101/24 ipv4.method manual
nmcli con up eth0
详细配置清单:
-
linux1:
-
Hostname:
linux1 -
IP:
200.203.30.101/24
-
-
linux2:
-
Hostname:
linux2 -
IP:
200.203.30.102/24
-
-
linux3 (特殊 - 双IP):
-
Hostname:
linux3 -
Config:
# 第一张网卡 (或第一个IP) nmcli con mod eth0 ipv4.addresses 200.203.30.103/24 ipv4.method manual # 第二张网卡 (或添加从IP) # 如果是单网卡多IP: nmcli con mod eth0 +ipv4.addresses 200.203.10.103/24 # 如果是双网卡: nmcli con add type ethernet con-name eth1 ifname enp2s0 ipv4.addresses 200.2 -