1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 11:16:47 +00:00

feat(bootstrap): an openEuler 24.03 LTS host is set up as a compute

The compute bootstrap found openEuler but had no install function for
it, so it stopped. Now it installs qemu, libvirt, python3-libguestfs
and cyrus-sasl (openEuler's names; it has no EPEL), applies the RHEL
family's qemu.conf, SASL and gstfsd steps, and runs the monolithic
libvirtd with its TCP socket: openEuler 24.03 ships modular daemons
only for qemu and the proxy.

Tested in an openEuler 24.03 container with /dev/kvm: the full live
suite over TCP (SASL) ran 2145 tests. What failed is libvirt 9.10's
(reverting a running VM's external snapshot, live clone needs 11.10),
the test host's (no pool named default), and its SeaBIOS, which
prints no banner on the serial port.
This commit is contained in:
catborise 2026-11-03 14:45:45 +03:00
parent d00e24f46d
commit 9bd61858cd
2 changed files with 32 additions and 2 deletions

View file

@ -235,14 +235,14 @@ Sign in at `http://<server-ip>`; you must set a new password at the first login,
A compute node is a KVM host the panel manages over libvirt.
1. Install KVM and libvirt. The bootstrap script handles Ubuntu, Debian, CentOS, Fedora, Rocky Linux and AlmaLinux 10, openSUSE and SLES. On RHEL, which needs EPEL from its release RPM, install the `qemu-kvm` and `libvirt` packages yourself and enable `virtqemud.socket` (plus `virtproxyd-tcp.socket` for TCP):
1. Install KVM and libvirt. The bootstrap script handles Ubuntu, Debian, CentOS, Fedora, Rocky Linux and AlmaLinux 10, openEuler 24.03 LTS, openSUSE and SLES. On RHEL, which needs EPEL from its release RPM, install the `qemu-kvm` and `libvirt` packages yourself and enable `virtqemud.socket` (plus `virtproxyd-tcp.socket` for TCP):
```bash
curl -fsSL https://raw.githubusercontent.com/retspen/webvirtcloud/master/dev/libvirt-bootstrap.sh | sudo sh
# or, from a cloned repository: sudo sh ./dev/libvirt-bootstrap.sh
```
The new VM form offers UEFI, UEFI Secure Boot (with Microsoft's keys, for Windows 11) and a TPM 2.0 only when the host's libvirt finds the UEFI firmware and swtpm: install `ovmf swtpm-tools` (Debian / Ubuntu) or `edk2-ovmf swtpm swtpm-tools` (RHEL family) if they are missing.
The new VM form offers UEFI, UEFI Secure Boot (with Microsoft's keys, for Windows 11) and a TPM 2.0 only when the host's libvirt finds the UEFI firmware and swtpm: install `ovmf swtpm-tools` (Debian / Ubuntu) or `edk2-ovmf swtpm swtpm-tools` (RHEL family, openEuler) if they are missing.
2. For SSH connections, give the user the panel runs as an SSH key and copy it to the compute node. **Use only the block for your installation type:** a key set up with the host commands is not seen by the panel in Docker. `ssh-copy-id` asks for the compute node's root password once. `accept-new` accepts a new host's key on first connect and refuses a changed one.

View file

@ -503,6 +503,36 @@ daemons_running_centos() {
#
##############################################################################
##############################################################################
#
# openEuler Install Functions
#
# qemu is openEuler's qemu-kvm, cyrus-sasl holds the DIGEST-MD5 mechanism
install_openeuler() {
dnf -y install qemu libvirt python3-libguestfs cyrus-sasl || return 1
return 0
}
# the same files as the RHEL family: VNC listen address, SASL, gstfsd
install_openeuler_post() {
install_centos_post
}
# openEuler 24.03 ships modular daemons only for qemu and the proxy, so the
# monolithic libvirtd serves all drivers, with its TCP socket for SASL logins
daemons_running_openeuler() {
systemctl enable --now libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket libvirtd-tcp.socket || return 1
systemctl restart libvirtd.service || return 1
if [ -f /usr/lib/systemd/system/libvirt-guests.service ]; then
systemctl enable --now libvirt-guests.service
fi
return 0
}
#
# Ended openEuler Install Functions
#
##############################################################################
##############################################################################
#
# Fedora Install Functions