How To Install oVirt Engine on Rocky Linux 8|AlmaLinux 8

Posted on 257 views

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.

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
^-             2   6   377    34   +731us[ +731us] +/-   51ms
^*        1   6   377    34  -1935us[-1769us] +/-   11ms
^+                2   6   377    33  +1121us[+1121us] +/-   16ms
^+             2   6   377    33  +2277us[+2277us] +/-   11ms

Step 2: Set Static IP addressing and configure DNS

Check your server IP address:

[[email protected] ~]# 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 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 brd 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 ovirt-manager

Check available free memory if it meets the requirements.

[[email protected] ~]$ 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.

[[email protected] ~]$ grep -c ^processor /proc/cpuinfo

Checking free disk space:

[[email protected] ~]$ 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

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                        Copr repo for gluster-ansible owned by sac                    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-toolspki-deps and postgresql:

[[email protected] ~]$ 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:

Transaction Summary


[[email protected] ~]$ 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

[[email protected] ~]$ 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


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.



Step 4: Configure oVirt packages on Rocky Linux 8 / AlmaLinux 8

Run the engine-setup command to begin configuration process for the oVirt Engine:

[[email protected] ~]$ 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


          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


Host fully qualified DNS name of this server []:
[WARNING] Failed to resolve 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:

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:

Engine admin password: 
Confirm engine admin password: 
Application mode (Virt, Gluster, Both) [Both]: Both
Use default credentials ([email protected]) 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.

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.

Organization name for certificate []:
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:

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



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
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                               :
          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                        :
          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 '[email protected]' and password specified in order to login
          Web access is enabled at:
          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:
          Please run the following command on the engine machine, 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 ###

### Access over http ###

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

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.

Gravatar Image
A systems engineer with excellent skills in systems administration, cloud computing, systems deployment, virtualization, containers, and a certified ethical hacker.