KVM Web管理界面安装指南(Cockpit 方案)
文章目录
- 完整的 KVM 虚拟化 + Cockpit Web 管理指南
完整的 KVM 虚拟化 + Cockpit Web 管理指南
整理一个完整的、无需 WebVirtMgr 的 KVM 管理方案:
第一部分:KVM 基础环境安装
1.1 安装 KVM 虚拟化组件
# 安装 KVM 虚拟化套件 yum install -y qemu-kvm libvirt libvirt-daemon-kvm virt-install # 安装 virt-manager 图形界面 yum install -y virt-manager virt-viewer # 安装图形界面环境(如果服务器没有桌面环境) yum groupinstall -y "Server with GUI"# 安装虚拟机管理工具 yum install -y libguestfs-tools virt-top # 验证 KVM 支持egrep -c '(vmx|svm)' /proc/cpuinfo # 检查 KVM 模块 lsmod |grep kvm 1.2 启动 libvirtd 服务
# 启动并启用 libvirtd 服务 systemctl enable --now libvirtd systemctl status libvirtd # 检查默认网络virsh net-list --all # 启动默认网络virsh net-start default virsh net-autostart default 第二部分:配置网络桥接(重要)
2.1 创建网络桥接
根据你的网络接口 br0 已经存在,来检查并配置:
# 检查现有网络配置ip a brctl show # 检查网络接口配置文件ls /etc/sysconfig/network-scripts/ |grep -E "(ens160|br0)"2.2 配置桥接网络
# 备份现有网络配置cp /etc/sysconfig/network-scripts/ifcfg-ens160 /etc/sysconfig/network-scripts/ifcfg-ens160.backup cp /etc/sysconfig/network-scripts/ifcfg-br0 /etc/sysconfig/network-scripts/ifcfg-br0.backup # 配置物理网卡 ens160(作为桥接从属)cat> /etc/sysconfig/network-scripts/ifcfg-ens160 <<'EOF' TYPE=Ethernet BOOTPROTO=none NAME=ens160 DEVICE=ens160 ONBOOT=yes BRIDGE=br0 NM_CONTROLLED=no EOF# 配置桥接接口 br0cat> /etc/sysconfig/network-scripts/ifcfg-br0 <<'EOF' TYPE=Bridge BOOTPROTO=static NAME=br0 DEVICE=br0 ONBOOT=yes IPADDR=192.168.40.150 NETMASK=255.255.255.0 GATEWAY=192.168.40.1 DNS1=192.168.40.1 NM_CONTROLLED=no DELAY=0 EOF2.3 重启网络服务
# 重启网络服务 systemctl restart network # 检查桥接状态 brctl show # 验证网络连接ping -c 3192.168.40.1 第三部分:安装和配置 Cockpit
3.1 安装 Cockpit
# 安装 Cockpit 和虚拟机管理插件 yum install -y cockpit cockpit-machines # 安装其他有用的插件(可选) yum install -y cockpit-packagekit cockpit-storaged cockpit-podman # 验证安装rpm -qa |grep cockpit 3.2 配置和启动 Cockpit
# 启用并启动 Cockpit socket 服务 systemctl enable --now cockpit.socket # 检查服务状态 systemctl status cockpit.socket # 检查端口监听netstat -tlnp |grep90903.3 配置防火墙
# 开放 Cockpit 端口 firewall-cmd --permanent --add-service=cockpit firewall-cmd --reload # 验证防火墙规则 firewall-cmd --list-all 第四部分:配置存储和权限
4.1 配置默认存储池
# 创建存储目录mkdir -p /var/lib/libvirt/images # 建议使用哪个目录空间充足就用哪个# 设置权限chown root:root /var/lib/libvirt/images chmod755 /var/lib/libvirt/images # 验证 libvirt 存储virsh pool-list --all 4.2 配置 Libvirt 权限
# 创建 polkit 规则,允许 Web 管理cat> /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla <<'EOF' [Remote libvirt SSH access] Identity=unix-user:root Action=org.libvirt.unix.manage ResultAny=yes ResultInactive=yes ResultActive=yes EOF# 重启 libvirtd 服务 systemctl restart libvirtd 第五部分:访问和使用 Cockpit
5.1 访问 Cockpit
通过浏览器访问:
https://192.168.40.150:9090 # 创建虚拟机,用网页方式管理更加方便注意:
- 使用 HTTPS 协议
- 端口是 9090
使用系统的 root 用户和密码 登录
5.2 创建虚拟机
在 Cockpit 界面中:
- 配置虚拟机参数:
点击"创建虚拟机"按钮
点击左侧菜单的"虚拟机"
翻译后的界面
- 名称:虚拟机的名称
- 安装源:选择 ISO 镜像或网络安装
- 内存:分配内存大小
- 存储:选择或创建虚拟磁盘
- 网络:选择桥接网络 (br0)
5.3 上传 ISO 镜像
# 创建 ISO 存储目录mkdir -p /iso # 上传操作系统 ISO 镜像到这个目录# 例如:CentOS、Windows 等 ISO 文件# 设置权限chmod644 /iso/*.iso 第六部分:高级配置(可选)
6.1 配置虚拟机模板
# 创建常用虚拟机配置模板(可选)cat> /tmp/vm-template.xml <<'EOF' <domain type='kvm'> <name>template-vm</name> <memory unit='GiB'>2</memory> <vcpu>2</vcpu> <os> <type arch='x86_64'>hvm</type> <boot dev='cdrom'/> <boot dev='hd'/> </os> <devices> <disk type='file' device='cdrom'> <source file='/iso/centos.iso'/> <target dev='sda' bus='sata'/> <readonly/> </disk> <interface type='bridge'> <source bridge='br0'/> <model type='virtio'/> </interface> <graphics type='vnc' port='-1' listen='0.0.0.0'/> </devices> </domain> EOF6.2 性能优化
# 启用巨页支持(提升性能)echo'vm.nr_hugepages = 1024'>> /etc/sysctl.conf sysctl -p # 检查巨页grep HugePages /proc/meminfo 第七部分:验证和测试
7.1 验证 KVM 环境
# 验证虚拟化支持 virt-host-validate # 查看虚拟机列表virsh list --all # 检查存储池virsh pool-list --all # 检查网络virsh net-list --all 7.2 测试网络桥接
# 创建测试虚拟机 virt-install \ --name test-vm \ --ram 1024\ --disk path=/vm/test-vm.qcow2,size=10\ --vcpus 1\ --os-type linux \ --os-variant centos7 \ --network bridge=br0 \ --graphics none \ --console pty,target_type=serial \ --location 'http://mirrors.aliyun.com/centos/7/os/x86_64/'\ --extra-args 'console=ttyS0,115200n8 serial'# 如果不需要测试虚拟机,可以删除virsh destroy test-vm virsh undefine test-vm rm -f /vm/test-vm.qcow2 第八部分:日常管理命令
8.1 常用命令行操作
# 查看所有虚拟机virsh list --all # 启动虚拟机virsh start 虚拟机名称 # 关闭虚拟机virshshutdown 虚拟机名称 # 强制关闭virsh destroy 虚拟机名称 # 删除虚拟机virsh undefine 虚拟机名称 # 查看虚拟机配置virsh dumpxml 虚拟机名称 # 控制台连接virsh console 虚拟机名称 8.2 服务管理
# 重启 Cockpit 服务 systemctl restart cockpit.socket # 重启 libvirtd systemctl restart libvirtd # 查看服务状态 systemctl status cockpit.socket systemctl status libvirtd 总结
这个完整的方案:
- 替代了 WebVirtMgr:使用更现代化的 Cockpit
- 包含了网络桥接:确保虚拟机与物理网络在同一网段
- 简化了安装步骤:无需复杂的 Python 依赖和配置
- 提供了完整的 KVM 管理功能:通过 Web 界面管理所有虚拟机