关键发现:`collectd` 不在 EPEL,而在 **CentOS Stream 9 OpsTools SIG** 仓库中 。oVirt 完整安装需要 **10+ 个 CentOS SIG 仓库**,以下给出从头开始的完整操作。 [computingforgeeks](https://computingforgeeks.com/how-to-install-ovirt-engine-on-centos-stream/) *** ## 第一步:修复 OpenEuler dnf 兼容性 ```bash # 解决 "Detection of Platform Module failed" 问题 echo "module_platform_id=platform:el9" >> /etc/dnf/dnf.conf # 验证 grep module_platform_id /etc/dnf/dnf.conf ``` *** ## 第二步:清理之前添加的错误仓库 ```bash # 删除上次添加的错误仓库 rm -f /etc/yum.repos.d/ovirt-master.repo rm -f /etc/yum.repos.d/ovirt-4.5.repo rm -f /etc/yum.repos.d/epel9-manual.repo dnf clean all ``` *** ## 第三步:添加全套依赖仓库(全部使用国内镜像) ```bash # 直接覆盖写入正确的 SIG 仓库文件 cat > /etc/yum.repos.d/centos9-stream-sigs.repo << 'EOF' [c9s-ovirt45] name=CentOS Stream 9 - oVirt 4.5 SIG baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/SIGs/9-stream/virt/x86_64/ovirt-45/ enabled=1 gpgcheck=0 [c9s-opstools] name=CentOS Stream 9 - OpsTools SIG (collectd) baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/SIGs/9-stream/opstools/x86_64/collectd-5/ enabled=1 gpgcheck=0 [c9s-openstack-yoga] name=CentOS Stream 9 - OpenStack Yoga SIG baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/SIGs/9-stream/cloud/x86_64/openstack-yoga/ enabled=1 gpgcheck=0 [c9s-rabbitmq] name=CentOS Stream 9 - RabbitMQ 38 SIG baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/SIGs/9-stream/messaging/x86_64/rabbitmq-38/ enabled=1 gpgcheck=0 [c9s-nfv-openvswitch] name=CentOS Stream 9 - NFV OpenvSwitch SIG baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/SIGs/9/nfv/x86_64/openvswitch-common/ enabled=1 gpgcheck=0 [c9s-ceph-pacific] name=CentOS Stream 9 - Ceph Pacific SIG baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/SIGs/9-stream/storage/x86_64/ceph-pacific/ enabled=1 gpgcheck=0 [c9s-gluster10] name=CentOS Stream 9 - Gluster 10 SIG baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/SIGs/9-stream/storage/x86_64/gluster-10/ enabled=1 gpgcheck=0 [c9s-extras] name=CentOS Stream 9 - Extras baseurl=https://mirrors.aliyun.com/centos-stream/SIGs/9-stream/extras/x86_64/extras-common/ enabled=1 gpgcheck=0 EOF # 一次性写入所有必需仓库文件 cat > /etc/yum.repos.d/centos9-stream-base.repo << 'EOF' [c9s-baseos] name=CentOS Stream 9 - BaseOS baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/os/ enabled=1 gpgcheck=0 [c9s-appstream] name=CentOS Stream 9 - AppStream baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/AppStream/x86_64/os/ enabled=1 gpgcheck=0 [c9s-crb] name=CentOS Stream 9 - CRB baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/CRB/x86_64/os/ enabled=1 gpgcheck=0 EOF cat > /etc/yum.repos.d/epel9.repo << 'EOF' [epel9] name=EPEL 9 - x86_64 (Aliyun Mirror) baseurl=https://mirrors.aliyun.com/epel/9/Everything/x86_64/ enabled=1 gpgcheck=0 priority=99 EOF cat > /etc/yum.repos.d/ovirt-4.5-upstream.repo << 'EOF' [ovirt-4.5] name=oVirt 4.5 Upstream baseurl=https://resources.ovirt.org/pub/ovirt-4.5/rpm/el9/ enabled=1 gpgcheck=0 EOF ``` *** ## 第四步:验证仓库并更新缓存 ```bash dnf clean all && dnf makecache # 验证关键包可以被找到 dnf info collectd | grep -E "Name|Version|Repo" dnf info python3-os-brick | grep -E "Name|Version|Repo" dnf info ovirt-engine | grep -E "Name|Version|Repo" ``` 预期输出示例: ``` Name : collectd Version : 5.12.0 Repository : c9s-opstools Name : ovirt-engine Version : 4.5.7 Repository : ovirt-4.5 ``` *** ## 第五步:安装 oVirt Engine ```bash # 安装 oVirt Engine(忽略 OpenEuler 与 RHEL 的轻微包名差异) dnf install -y ovirt-engine \ --setopt=module_platform_id=platform:el9 \ --allowerasing # 安装过程中如有提示 "is it ok [y/N]" 类问题,输入 y 确认 ``` > 安装过程约下载 **500MB~1GB** 的包,根据网速需要 5-15 分钟。 *** ## 第六步:配置主机名(FQDN 必须可解析) ```bash # 设置 FQDN hostnamectl set-hostname ovirt.local.lan # 添加本地解析 echo "192.168.11.14 ovirt.local.lan ovirt" >> /etc/hosts # 验证(必须返回 FQDN,不能是 localhost) hostname -f ping -c 2 $(hostname -f) ``` *** ## 第七步:运行配置向导 ```bash engine-setup ``` **交互配置参考(直接回车使用默认值即可):** ``` Configure Engine on this host (Yes, No) [Yes]: ↵ 回车 Configure Image I/O Proxy on this engine (Yes, No) [Yes]: ↵ 回车 Configure WebSocket Proxy on this machine (Yes, No) [Yes]: ↵ 回车 Configure Data Warehouse on this engine (Yes, No) [Yes]: ↵ 回车 Application mode (both, virt, gluster) [both]: ↵ 回车 Default SHE Storage Domain type (glusterfs, nfs) [nfs]: ↵ 回车 Engine database host [localhost]: ↵ 回车 Engine database port [5432]: ↵ 回车 Engine database name [engine]: ↵ 回车 Engine database user [engine]: ↵ 回车 Engine database password: 输入密码 oVirt Engine FQDN [ovirt.local.lan]: ↵ 回车 Use default credentials (admin@internal) [Yes]: ↵ 回车 Engine admin password: 输入Web登录密码 Firewall manager to configure (iptables, firewalld) [firewalld]: ↵ 回车 Confirm installation settings [OK]: ↵ 回车 ``` 成功后输出: ``` --== SUMMARY ==-- Web access is enabled at: https://ovirt.local.lan/ovirt-engine http://ovirt.local.lan/ovirt-engine Please use "admin" user to login ``` *** ## 第八步:安装 VDSM(宿主节点代理) ```bash dnf install -y ovirt-host \ --setopt=module_platform_id=platform:el9 \ --allowerasing systemctl enable --now vdsmd supervdsmd # 验证 systemctl status vdsmd | grep -E "Active|Main" ``` *** ## 第九步:登录 Web Portal 添加宿主机 浏览器访问 `https://192.168.11.14/ovirt-engine`,用户名 `admin`,密码为 `engine-setup` 中设置的密码。 ``` 计算 → 主机 → 新建 名称: node-openeuler 主机名: 192.168.11.14 SSH端口: 22 认证方式: 密码(填 root 密码) → 确定 # 等待约 3-5 分钟,状态变为「已开机」即成功 ``` *** ## 第十步:安装完成后清理临时仓库 ```bash # 保留 ovirt-4.5-upstream(后续升级用),删除临时的 CentOS 依赖仓库 rm -f /etc/yum.repos.d/centos9-stream-base.repo rm -f /etc/yum.repos.d/centos9-stream-sigs.repo rm -f /etc/yum.repos.d/epel9.repo # 仅保留: ls /etc/yum.repos.d/ # openEuler 原始仓库(不动) # ovirt-4.5-upstream.repo(保留,用于 oVirt 后续更新) dnf clean all ``` > **说明**:清理仓库后已安装的包不受影响,仅禁止后续从这些源拉取新包,符合"安装完成后去除"的要求。