{"id":19,"date":"2024-12-19T07:14:38","date_gmt":"2024-12-19T07:14:38","guid":{"rendered":"https:\/\/paessens.org\/blog\/?p=19"},"modified":"2024-12-19T12:45:26","modified_gmt":"2024-12-19T11:45:26","slug":"installing-ovirt-on-oracle-linux-self-hosted","status":"publish","type":"post","link":"https:\/\/paessens.org\/blog\/index.php\/2024\/12\/19\/installing-ovirt-on-oracle-linux-self-hosted\/","title":{"rendered":"Installing oVirt on Oracle Linux (Self-Hosted)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I know, Oracle Linux Virtualization Manager is scheduled to be end-of-life (in 2026). But still wanting to be able to install it, was a bit more difficult. Mainly due the fact it&#8217;s EOL (I presume). But here are the installation steps which works for me.<\/p>\n\n\n\n<p class=\"is-style-text-subtitle wp-block-paragraph\">Prerequisites<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Running server with Oracle Linux 8 (Not 9, since no repository available for it) &#8211; Minimal Server installation &amp; not updated (yet)<\/li>\n\n\n\n<li>root or sudo privileges<\/li>\n\n\n\n<li>Domain name service configured with all host names (reverse lookup as well)<\/li>\n\n\n\n<li>Have complex password ready to be used<\/li>\n<\/ul>\n\n\n\n<p class=\"is-style-text-subtitle wp-block-paragraph\">Step 1: Prepare environment<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Install this version of the osinfo-db package (and not higher)<\/p>\n\n\n\n<pre class=\"wp-block-code is-style-default\"><code><code>yum install osinfo-db-20231215-1.0.1.el8 -y<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Exclude it from being updated<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>echo \"exclude=osinfo-db\" &gt;&gt; \/etc\/dnf\/dnf.conf<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Enable\/Configure repositories<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>dnf config-manager --enable ol8_baseos_latest<\/code><code>dnf install oracle-ovirt-release-45-el8 -y<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If needed<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>dnf install kernel-uek-modules-extra -y<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Clean up and reboot<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>dnf clean all<br>dnf repolist<br>reboot<\/code><\/code><\/pre>\n\n\n\n<p class=\"is-style-text-subtitle wp-block-paragraph\">Step 2: Install host engine<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Install the host engine with the following command<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>dnf install ovirt-hosted-engine-setup -y<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If wanted you can install cockpit as well, but due to an error I would not deploy OVM by using it.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>dnf install cockpit-ovirt-dashboard -y<\/code><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code><code>firewall-cmd --permanent --zone=public --add-port=9090\/tcp<br>firewall-cmd --reload<\/code><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code><code>systemctl enable --now cockpit.socket<\/code><\/code><\/pre>\n\n\n\n<p class=\"is-style-text-subtitle wp-block-paragraph\">Step 3: Configure host engine<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deployment and configuration of host engine is started with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>hosted-engine --deploy --4<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Very imported to answer <strong>No<\/strong> on the question of keycloak. (reason why it fails in Cockpit)<\/p>\n\n\n\n<p class=\"is-style-text-subtitle wp-block-paragraph\">Step 4: Storage<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The installation started in step 3, take a moment to complete. Therefor I use it to configure the storage during that period. So I&#8217;m ready when he ask for it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Configure Additional disk (LVM, minimum 55GB size)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>mkdir -p \/data\/<\/code><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code><code>pvcreate \/dev\/vdb<\/code><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code><code>vgcreate rhvh \/dev\/vdb<\/code><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code><code>lvcreate -L 55G rhvh -n data<\/code><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code><code>mkfs.ext4 \/dev\/mapper\/rhvh-data<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mount the disk<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>echo \"\/dev\/mapper\/rhvh-data \/data ext4 defaults,discard 1 2\" &gt;&gt; \/etc\/fstab<\/code><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code><code>mount -a<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Set the permissions<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>chown 36:36 \/data<br>chmod 0755 \/data<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Configure NFS share, using the disk above. <br>Install and enable NFS.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>dnf install nfs-utils -y<br>systemctl enable --now nfs-server<br>systemctl enable --now rpcbind<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Configure NFS<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>echo \"\/data *(rw)\" &gt;&gt; \/etc\/exports<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Restart the services<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>systemctl restart rpcbind\nsystemctl restart nfs-server<\/code>\n<code>exportfs -ra\nexportfs -v<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Open firewall ports<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>firewall-cmd --add-service=nfs --permanent<br>firewall-cmd --reload<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now, when arriving at the point to provide storage information, you fill in <strong>nfs<\/strong>. And point it towards <em>&lt;Host IP Address&gt;<\/em>:\/data<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When this finish you have your environment ready. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Have fun<\/p>\n\n\n\n<p class=\"is-style-text-subtitle wp-block-paragraph\">References:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.oracle.com\/en\/virtualization\/oracle-linux-virtualization-manager\/getstart\/getstarted-hosted-engine-deploy.html#hosted-engine-deploy\">Self-Hosted Engine Deployment<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/monin-it.be\/bye-bye-oracle-vm-welcome-oracle-linux-kvm\/\">Bye bye Oracle VM, welcome Oracle Linux KVM<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/oracle-samples.github.io\/oltrain\/tracks\/olvm\/\">Oracle Linux Virtualization Manager<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.oracle.com\/linux\/technologies\/oracle-linux-downloads.html\">Oracle Downloads<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/yum.oracle.com\/oracle-linux-isos.html\">Oracle Linux Installation Media<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I know, Oracle Linux Virtualization Manager is scheduled to be end-of-life (in 2026). But still wanting to be able to install it, was a bit more difficult. Mainly due the fact it&#8217;s EOL (I presume). But here are the installation<\/p>\n<p><a href=\"https:\/\/paessens.org\/blog\/index.php\/2024\/12\/19\/installing-ovirt-on-oracle-linux-self-hosted\/\" class=\"awp-btn awp-btn-secondary awp-btn-bubble\">Continue Reading<span class=\"screen-reader-text\">Installing oVirt on Oracle Linux (Self-Hosted)<\/span><i class=\"fa fa-arrow-right\"><\/i><span class=\"bubble_effect\"><span class=\"circle top-left\"><\/span><span class=\"circle top-left\"><\/span><span class=\"circle top-left\"><\/span>\t<span class=\"button effect-button\"><\/span><span class=\"circle bottom-right\"><\/span>\t<span class=\"circle bottom-right\"><\/span><span class=\"circle bottom-right\"><\/span><\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[11],"class_list":["post-19","post","type-post","status-publish","format-standard","hentry","category-oracle-linux","tag-kvm"],"_links":{"self":[{"href":"https:\/\/paessens.org\/blog\/index.php\/wp-json\/wp\/v2\/posts\/19","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paessens.org\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/paessens.org\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/paessens.org\/blog\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/paessens.org\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=19"}],"version-history":[{"count":6,"href":"https:\/\/paessens.org\/blog\/index.php\/wp-json\/wp\/v2\/posts\/19\/revisions"}],"predecessor-version":[{"id":29,"href":"https:\/\/paessens.org\/blog\/index.php\/wp-json\/wp\/v2\/posts\/19\/revisions\/29"}],"wp:attachment":[{"href":"https:\/\/paessens.org\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=19"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/paessens.org\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=19"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/paessens.org\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}