How To Install oVirt Engine on Rocky Linux 8|AlmaLinux 8
Virtualization allows for the partitioning of a single compute machine into multiple virtual computers, each with its own operating system. The Virtual Machines created through Virtualization are fully isolated from each other to appear as if running on private hardware. By adoption Virtualization you’re able to provision new virtual servers faster than the time it takes to deploy new physical hardware.
A Virtualization management solution is required to effectively manage hosts and virtual machines running in an Infrastructure. In most cases, virtualization management tools provides an integrated virtualization environment for easy creation, management, and monitoring of hypervisors, virtual machines, storage, and networking resources. In a nutshell, the Virtualization manager gives you a centralized control over your virtualization infrastructure, as opposed to individually administering hundreds of hypervisors and their virtual machines.
What is oVirt Virtualization platform?
oVirt is a free, and open-source virtualization solution for your entire enterprise Infrastructure. oVirt is built upon popular community projects, including Ansible, Gluster, KVM hypervisor ( libvirt), and PatternFly.
oVirt features include:
- Rich web-based user interfaces for both admin and non-admin users
- Integrated management of hosts, storage, and network configuration
- Live migration of virtual machines and disks between hosts and storage
- High availability of virtual machines in the event of host failure
What is oVirtVirtualization Manager?
oVirt Virtualization Manager is a central management platform for logical and physical resources of a oVirt Virtualization infrastructure. This oVirt Manager uses PostgreSQL databases and is built upon JBoss Enterprise Application Platform (EAP). It provides several management interfaces, including a REST API.
A table showing the key components of oVirt Virtualization Solution:
Name Component Description oVirt Engine Service that provides a graphical user interface and a REST API to manage the resources in the environment. The Engine is installed on a physical or virtual machine running Enterprise Linux. Hosts Enterprise Linux hosts (Enterprise Linux hosts) and oVirt Nodes (image-based hypervisors) are the two supported types of host. Hosts use Kernel-based Virtual Machine (KVM) technology and provide resources used to run virtual machines. Shared Storage A storage service is used to store the data associated with virtual machines. Data Warehouse A service that collects configuration information and statistical data from the Engine.
Install oVirt 4.4 Manager on Rocky Linux 8 / AlmaLinux 8
There are two standards of oVirt Engine deployment. In either deployment option, a VDSM (host agent) runs on all hosts to facilitate communication with the oVirt Engine.
1. Standalone Engine Deployment
In Standalone Engine deployment, the oVirt Engine runs on a virtual machine hosted in a separate virtualization environment, or a physical server not part of oVirt Virtualization stack. The benefits of standalone Engine deployment is the is ease of to setup and management., only that it requires an additional physical server. Hight Availability of the oVirt Engine is the responsibility of SysAdmin.
2. Self-Hosted Engine Deployment
In this deployment method, the oVirt Engine runs as a virtual machine on self-hosted engine nodes (specialized hosts) in the same environment it manages. A self-hosted engine environment requires one less physical server, but requires more administrative overhead to deploy and manage. The Engine is highly available without external HA management.
oVirt Engine Hardware Requirements
The recommended hardware requirements for oVirt Engine deployment are:
- Hard Disk — 50 GB of locally accessible, writable disk space.
- CPU — A quad core x86_64 CPU or multiple dual core x86_64 CPUs.
- Memory — 16 GB of system RAM.
Option 1: Standalone Engine Deployment
For a standalone oVirt Engine deployment follow the steps outlined in this section.
Step 1: Set hostname and time
Set your oVirt Manager machine hostname.
Hostname="ovirt-manager.hirebestengineers.com"
sudo hostnamectl set-hostname $Hostname
Configure timezone of our region on the server.
sudo timedatectl set-timezone Africa/Nairobi
Ensure NTP time synchronization is configured correctly.
$ sudo yum -y install chrony
$ sudo systemctl enable --now chronyd
$ sudo chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- resolv2.bbone.net 2 6 377 34 +731us[ +731us] +/- 51ms
^* time1.uni-paderborn.de 1 6 377 34 -1935us[-1769us] +/- 11ms
^+ mail.l0nax.org 2 6 377 33 +1121us[+1121us] +/- 16ms
^+ tanss.it-risch.de 2 6 377 33 +2277us[+2277us] +/- 11ms
Step 2: Set Static IP addressing and configure DNS
Check your server IP address:
[jmutai@ovirt-manager ~]# ip ad
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s0: mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:6d:c1:dd brd ff:ff:ff:ff:ff:ff
inet 192.168.77.2/24 brd 192.168.77.255 scope global noprefixroute enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe6d:c1dd/64 scope link
valid_lft forever preferred_lft forever
If the IP address is assigned from DHCP, ensure DHCP server is highly available. Alternatively, configure static IP addressing on the server.
Add your server hostname in DNS server or modify the /etc/hosts
file.
$ sudo vi /etc/hosts
192.168.77.2 ovirt-manager.hirebestengineers.com ovirt-manager
Check available free memory if it meets the requirements.
[jmutai@ovirt-manager ~]$ free -h
total used free shared buff/cache available
Mem: 15Gi 203Mi 15Gi 8.0Mi 242Mi 14Gi
Swap: 614Mi 0B 614Mi
Check processor hardware requirement.
[jmutai@ovirt-manager ~]$ grep -c ^processor /proc/cpuinfo
4
Checking free disk space:
[jmutai@ovirt-manager ~]$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs tmpfs 7.8G 8.5M 7.8G 1% /run
tmpfs tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/vda4 xfs 39G 2.0G 37G 6% /
/dev/vda2 ext4 976M 301M 609M 34% /boot
tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/0
Step 3: Add oVirt RPM repository
Let’s add oVirt RPM repository to our Rocky Linux 8 / AlmaLinux 8 server.
sudo yum -y install https://resources.ovirt.org/pub/yum-repo/ovirt-release44.rpm
Check repos enabled after addition:
$ dnf repolist
repo id repo name
appstream Rocky Linux 8 - AppStream
baseos Rocky Linux 8 - BaseOS
extras Rocky Linux 8 - Extras
ovirt-4.4 Latest oVirt 4.4 Release
ovirt-4.4-advanced-virtualization Advanced Virtualization packages for x86_64
ovirt-4.4-centos-ceph-pacific Ceph packages for x86_64
ovirt-4.4-centos-gluster8 CentOS-8 - Gluster 8
ovirt-4.4-centos-nfv-openvswitch CentOS-8 - NFV OpenvSwitch
ovirt-4.4-centos-opstools CentOS-8 - OpsTools - collectd
ovirt-4.4-centos-ovirt44 CentOS-8 - oVirt 4.4
ovirt-4.4-copr:copr.fedorainfracloud.org:sac:gluster-ansible Copr repo for gluster-ansible owned by sac
ovirt-4.4-copr:copr.fedorainfracloud.org:sbonazzo:EL8_collection Copr repo for EL8_collection owned by sbonazzo
ovirt-4.4-epel Extra Packages for Enterprise Linux 8 - x86_64
ovirt-4.4-openstack-victoria OpenStack Victoria Repository
ovirt-4.4-virtio-win-latest virtio-win builds roughly matching what will be shipped in upcoming RHEL
Enable PowerTools repository
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --set-enabled powertools
Enable all AppStream modules required — javapackages-tools, pki-deps and postgresql:
[jmutai@ovirt-manager ~]$ sudo dnf module -y enable javapackages-tools
Rocky Linux 8 - PowerTools 8.3 MB/s | 2.5 MB 00:00
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Enabling module streams:
javapackages-tools
201801
Transaction Summary
================================================================================
Complete!
[jmutai@ovirt-manager ~]$ sudo dnf module -y enable pki-deps
Last metadata expiration check: 0:03:10 ago on Sun 09 Jan 2022 02:38:54 AM EAT.
Dependencies resolved.
================================================================================================================================================================================
Package Architecture Version Repository Size
================================================================================================================================================================================
Enabling module streams:
pki-deps 10.6
Transaction Summary
================================================================================================================================================================================
Complete!
[jmutai@ovirt-manager ~]$ sudo dnf module -y enable postgresql:12
Last metadata expiration check: 0:03:17 ago on Sun 09 Jan 2022 02:38:54 AM EAT.
Dependencies resolved.
================================================================================================================================================================================
Package Architecture Version Repository Size
================================================================================================================================================================================
Enabling module streams:
postgresql 12
Transaction Summary
================================================================================================================================================================================
Complete!
Ensure all system packages are up to date:
sudo dnf distro-sync --nobest
sudo dnf upgrade --nobest
Step 4: Install oVirt packages on Rocky Linux 8 / AlmaLinux 8
Install ovirt-engine package and dependencies Rocky Linux 8 / AlmaLinux 8:
sudo dnf install ovirt-engine
The number of packages installed are quite huge in size. If you have slow internet you may need to wait for some minutes.
Transaction Summary
=====================================================================================================================================================================================
Install 551 Packages
Total download size: 827 M
Installed size: 2.3 G
Is this ok [y/N]: y
Wait for the complete message.
.....
urw-base35-nimbus-mono-ps-fonts-20170801-10.el8.noarch
urw-base35-nimbus-roman-fonts-20170801-10.el8.noarch
urw-base35-nimbus-sans-fonts-20170801-10.el8.noarch
urw-base35-p052-fonts-20170801-10.el8.noarch
urw-base35-standard-symbols-ps-fonts-20170801-10.el8.noarch
urw-base35-z003-fonts-20170801-10.el8.noarch
userspace-rcu-0.10.1-4.el8.x86_64
uuid-1.6.2-43.el8.x86_64
vdsm-jsonrpc-java-1.6.0-1.el8.noarch
ws-commons-util-1.0.2-1.el8.noarch
xdg-utils-1.1.2-5.el8.noarch
xmlrpc-client-3.1.3-1.el8.noarch
xmlrpc-common-3.1.3-1.el8.noarch
xmlstreambuffer-1.5.4-8.module+el8.3.0+53+ea062990.noarch
xorg-x11-font-utils-1:7.5-41.el8.x86_64
xorg-x11-fonts-ISO8859-1-100dpi-7.5-19.el8.noarch
xorg-x11-server-utils-7.7-27.el8.x86_64
xsom-0-19.20110809svn.module+el8.3.0+53+ea062990.noarch
yajl-2.1.0-10.el8.x86_64
Complete!
Step 4: Configure oVirt packages on Rocky Linux 8 / AlmaLinux 8
Run the engine-setup command to begin configuration process for the oVirt Engine:
[jmutai@ovirt-manager ~]$ sudo engine-setup
The configuration of oVirt Engine starts almost immediately.
[ INFO ] Stage: Initializing
[ INFO ] Stage: Environment setup
Configuration files: /etc/ovirt-engine-setup.conf.d/10-packaging-jboss.conf, /etc/ovirt-engine-setup.conf.d/10-packaging.conf
Log file: /var/log/ovirt-engine/setup/ovirt-engine-setup-20220109025904-uk0sv6.log
Version: otopi-1.9.6 (otopi-1.9.6-1.el8)
[ INFO ] Stage: Environment packages setup
[ INFO ] Stage: Programs detection
[ INFO ] Stage: Environment setup (late)
[ INFO ] Stage: Environment customization
--== PRODUCT OPTIONS ==--
Set up Engine and Cinderlib integration
Optionally set up Cinderlib integration on this machine. Type Yes and press Enter
--== PRODUCT OPTIONS ==--
Configure Cinderlib integration (Currently in tech preview) (Yes, No) [No]: No
Press Enter to configure the Engine on this machine:
Configure Engine on this host (Yes, No) [Yes]: Yes
Configure Open Virtual Network (OVN) / WebSocket Proxy
You can choose to install an Open Virtual Network (OVN) server on the Engine machine and adds it to oVirt as an external network provider. This action also configures the Default cluster to use OVN as its default network provider.
Configuring ovirt-provider-ovn also sets the Default cluster’s default network provider to ovirt-provider-ovn.
Non-Default clusters may be configured with an OVN after installation.
Configure ovirt-provider-ovn (Yes, No) [Yes]: Yes
Optionally allow engine-setup to configure a WebSocket Proxy server for allowing users to connect to virtual machines through the noVNC console:
Configure WebSocket Proxy on this machine? (Yes, No) [Yes]: Yes
Configure Data Warehouse / Grafana
oVirt only supports installing the Data Warehouse database, the Data Warehouse service, and Grafana all on the same machine as each other.
Choose whether to configure Data Warehouse on this machine.
Please note: Data Warehouse is required for the engine. If you choose to not configure it on this host, you have to configure it on a remote host, and then configure the engine on this host so that it can access the database of the remote Data Warehouse host.
Configure Data Warehouse on this host (Yes, No) [Yes]: Yes
Press Enter to configure Grafana on the Engine:
Configure Grafana on this host (Yes, No) [Yes]: Yes
Configure firewall and DNS
You can press Enter to accept the automatically detected host name, or enter an alternative host name.
--== PACKAGES ==--
[ INFO ] Checking for product updates...
[ INFO ] No product updates found
--== NETWORK CONFIGURATION ==--
Host fully qualified DNS name of this server [ovirt-manager.hirebestengineers.com]:
[WARNING] Failed to resolve ovirt-manager.hirebestengineers.com using DNS, it can be resolved only locally
Setup can automatically configure the firewall on this system.
Note: automatic configuration of the firewall may overwrite current settings.
If you have an active firewall service, allow engine-setup
to modify your firewall configuration:
Do you want Setup to configure the firewall? (Yes, No) [Yes]: Yes
[ INFO ] firewalld will be configured as firewall manager.
Data Warehouse database Configurations
Specify whether to configure the Data Warehouse database on this machine, or on another machine:
--== DATABASE CONFIGURATION ==--
Where is the DWH database located? (Local, Remote) [Local]: Local
Setup can configure the local postgresql server automatically for the DWH to run. This may conflict with existing applications.
Would you like Setup to automatically configure postgresql and create DWH database, or prefer to perform that manually? (Automatic, Manual) [Automatic]: Automatic
Where is the Engine database located? (Local, Remote) [Local]: Local
Setup can configure the local postgresql server automatically for the engine to run. This may conflict with existing applications.
Would you like Setup to automatically configure postgresql and create Engine database, or prefer to perform that manually? (Automatic, Manual) [Automatic]: Automatic
Set oVirt Engine admin password
Set a password for the automatically created administrative user of the oVirt Engine:
--== OVIRT ENGINE CONFIGURATION ==--
Engine admin password:
Confirm engine admin password:
Application mode (Virt, Gluster, Both) [Both]: Both
Use default credentials (admin@internal) for ovirt-provider-ovn (Yes, No) [Yes]: Yes
Set SAN Storage wipe configuration
Set the default value for the wipe_after_delete flag, which wipes the blocks of a virtual disk when the disk is deleted.
--== STORAGE CONFIGURATION ==--
Default SAN wipe after delete (Yes, No) [No]: No
Confirm or set organization name for the certificate
The Engine uses certificates to communicate securely with its hosts. This certificate can also optionally be used to secure HTTPS communications with the Engine.
Set or confirm organization name by pressing Enter.
--== PKI CONFIGURATION ==--
Organization name for certificate [hirebestengineers.com]:
Apache / Data Warehouse sampling / Grafana password
Allow engine-setup to make the landing page of the Engine the default page presented by the Apache web server:
--== APACHE CONFIGURATION ==--
Setup can configure the default page of the web server to present the application home page. This may conflict with existing applications.
Do you wish to set the application as the default page of the web server? (Yes, No) [Yes]: Yes
Configure Apache to use SSL using a certificate issued from the internal CA
Setup can configure apache to use SSL using a certificate issued from the internal CA.
Do you wish Setup to configure that, or prefer to perform that manually? (Automatic, Manual) [Automatic]: Automatic
Choose Data Warehouse sampling scale
--== SYSTEM CONFIGURATION ==--
--== MISC CONFIGURATION ==--
Please choose Data Warehouse sampling scale:
(1) Basic
(2) Full
(1, 2)[1]: 1
Specify a unique password for the Grafana admin user, or use same one as the Engine admin password:
Use Engine admin password as initial Grafana admin password (Yes, No) [Yes]: Yes
--== END OF CONFIGURATION ==--
Review the installation settings and deploy
Review the installation settings, and press Enter to accept the values and proceed with the deployment of oVirt Engine on the system:
[ INFO ] Stage: Setup validation
--== CONFIGURATION PREVIEW ==--
Application mode : both
Default SAN wipe after delete : False
Host FQDN : ovirt-manager.hirebestengineers.com
Firewall manager : firewalld
Update Firewall : True
Set up Cinderlib integration : False
Configure local Engine database : True
Set application as default page : True
Configure Apache SSL : True
Engine database host : localhost
Engine database port : 5432
Engine database secured connection : False
Engine database host name validation : False
Engine database name : engine
Engine database user name : engine
Engine installation : True
PKI organization : hirebestengineers.com
Set up ovirt-provider-ovn : True
Grafana integration : True
Grafana database user name : ovirt_engine_history_grafana
Configure WebSocket Proxy : True
DWH installation : True
DWH database host : localhost
DWH database port : 5432
DWH database secured connection : False
DWH database host name validation : False
DWH database name : ovirt_engine_history
Configure local DWH database : True
Configure VMConsole Proxy : True
Please confirm installation settings (OK, Cancel) [OK]: OK
After successful configuration of your oVirt Engine environment, the engine-setup
will display all the details regarding access to the oVirt Environment.
[ INFO ] Stage: Transaction setup
[ INFO ] Stopping engine service
[ INFO ] Stopping ovirt-fence-kdump-listener service
[ INFO ] Stopping dwh service
[ INFO ] Stopping vmconsole-proxy service
[ INFO ] Stopping websocket-proxy service
[ INFO ] Stage: Misc configuration (early)
[ INFO ] Stage: Package installation
[ INFO ] Stage: Misc configuration
[ INFO ] Upgrading CA
[ INFO ] Initializing PostgreSQL
[ INFO ] Creating PostgreSQL 'engine' database
[ INFO ] Configuring PostgreSQL
[ INFO ] Creating PostgreSQL 'ovirt_engine_history' database
[ INFO ] Configuring PostgreSQL
[ INFO ] Creating CA: /etc/pki/ovirt-engine/ca.pem
[ INFO ] Creating CA: /etc/pki/ovirt-engine/qemu-ca.pem
[ INFO ] Updating OVN SSL configuration
[ INFO ] Updating OVN timeout configuration
[ INFO ] Creating/refreshing DWH database schema
[ INFO ] Setting up ovirt-vmconsole proxy helper PKI artifacts
[ INFO ] Setting up ovirt-vmconsole SSH PKI artifacts
[ INFO ] Configuring WebSocket Proxy
[ INFO ] Creating/refreshing Engine database schema
[ INFO ] Creating a user for Grafana
[ INFO ] Creating/refreshing Engine 'internal' domain database schema
[ INFO ] Creating default mac pool range
[ INFO ] Adding default OVN provider to database
[ INFO ] Adding OVN provider secret to database
[ INFO ] Setting a password for internal user admin
[ INFO ] Install selinux module /usr/share/ovirt-engine/selinux/ansible-runner-service.cil
[ INFO ] Generating post install configuration file '/etc/ovirt-engine-setup.conf.d/20-setup-ovirt-post.conf'
[ INFO ] Stage: Transaction commit
[ INFO ] Stage: Closing up
[ INFO ] Starting engine service
[ INFO ] Starting dwh service
[ INFO ] Starting Grafana service
[ INFO ] Restarting ovirt-vmconsole proxy service
--== SUMMARY ==--
[ INFO ] Restarting httpd
Please use the user 'admin@internal' and password specified in order to login
Web access is enabled at:
http://ovirt-manager.hirebestengineers.com:80/ovirt-engine
https://ovirt-manager.hirebestengineers.com:443/ovirt-engine
Internal CA 41:E4:7A:96:08:4A:55:8F:3A:49:36:76:5A:B3:16:E8:D8:FA:C9:FF
SSH fingerprint: SHA256:cXMs/4pxBeKQcZYHLcNFDMUSuZ9XlPr84fQ+teeDkjw
Web access for grafana is enabled at:
https://ovirt-manager.hirebestengineers.com/ovirt-engine-grafana/
Please run the following command on the engine machine ovirt-manager.hirebestengineers.com, for SSO to work:
systemctl restart ovirt-engine
--== END OF SUMMARY ==--
[ INFO ] Stage: Clean up
Log file is located at /var/log/ovirt-engine/setup/ovirt-engine-setup-20220109025904-uk0sv6.log
[ INFO ] Generating answer file '/var/lib/ovirt-engine/setup/answers/20220109031018-setup.conf'
[ INFO ] Stage: Pre-termination
[ INFO ] Stage: Termination
[ INFO ] Execution of setup completed successfully
Accessing oVirt Administration Portal
Open your web browser and access Administration Portal using using the URL
### Access over https ###
https://ovirt-manager-fqdn/ovirt-engine
### Access over http ###
http://ovirt-manager-fqdn/ovirt-engine
Don’t forget to replaceovirt-manager-fqdn with the FQDN provided during installation of oVirt engine. You can also access the Portal using alternate host names or IP addresses configurable in the file under /etc/ovirt-engine/engine.conf.d/
.
$ sudo vi /etc/ovirt-engine/engine.conf.d/99-custom-sso-setup.conf
SSO_ALTERNATE_ENGINE_FQDNS="alias1.mydomain.com alias2.mydomain.com"
Accept security warning to access the portal.
Certificate authority’s certificate can be obtained by navigating to http://ovirt-manager-fqdn/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA, while replacing ovirt-manager-fqdn with your oVirt FQDN provided during the installation.
Click on “Administation Portal” link.
Log in to the Administration Portal with admin username and password set during installation.
From here you can add hosts and storage to the oVirt environment
The next step is storage domain configurations before adding hosts:
Option 2: Installing oVirt as a self-hosted engine
The Self-hosted engine installation is automated using Ansible. You use an installation script (hosted-engine --deploy
) which runs on an initial deployment host, and installation of the oVirt Engine and its configuration is done on a virtual machine created on the host deployed.
Step 1: Prepare Storage
You start by preparing storage to use for the self-hosted engine storage domain and for standard storage domains. We have a dedicated on NFS shared in the link below:
Step 2: Install oVirt Host
This host will become the first self-hosted engine node. You can use either host type:
Step 3: Install and configure the oVirt Engine
Install and configure oVirt Engine on one of the host by following along below guide:
In our next article available in the link shared, we cover installing Rocky Linux 8 / AlmaLinux 8 Hosts to oVirt Virtualization environment.