HowTo: Get oVirt 3.2 All-In-One working on Scientific Linux 6.4 (With fixes!)

First off, Credit where it is due.

Most of what I used to get this working came from this post: 

I just wanted to say thank you to "Jeb" in his documentation to get me started on this project. 

Lets get to the fun part! There are a few requirements, please see the below. 

Hardware Requirements: 

You will need a server with x86-64 processors with Hardware Virtualization Extensions (Most modern processors have this! Make sure to check your bios to enable virtualization extensions). 

You should have a MINIMUM of 4 gb of RAM. The more the better! This will be your most sparse resource, when your out of ram, your out of VM's. 

Software Requirements: 

oVirt is designed/developed on the fedora Linux base. This means that you will most likely have the smoothest experience using Fedora for your system. 

As of now, you can use oVirt on Fedora 18. I currently have this working in my home-lab. I installed Fedora 18 from DVD via the "minimal" install. 

Network Requirements: 

You must have a hostname that resolves properly on your network. This will most likely require a local DNS server. The main record you need to make sure is working is your PTR record (reverse dns). Without this the engine-setup tool will complain a LOT. 

Lets get started!!

Configure the Repository: 

We are going to override the local repository for oVirt as Fedora 18 only has the oVirt 3.1 engine, not yet the 3.2 engine we want! 

sudo yum localinstall

sudo wget -P /etc/yum.repos.d/

sudo yum localinstall

sudo wget -P /etc/yum.repos.d/

 Modify SElinux so it will not bug us when we get things working. 

sudo setenforce 0

Then modify /etc/sysconfig/selinux and change the mode to "permissive". This will allow your SElinux changes to precist after reboots. 
Install all of the following. This will give us everything we need to get working with oVirt 3.2

sudo yum install java-1.7.0-openjdk ovirt-engine wget postgresql-server postgresql-contrib pgadmin3 java-1.6.0-openjdk-devel dbus dbus-devel dbus-glib dbus-glib-devel dbus-python dbus-python-devel -y

Once everything is complete, we have a few minor things we need to change. Without these changes we will run into problems later. These are the bug fixes I have come up with to make sure engine-setup completes successfully the first time. 
 1. REBOOT, Then continue on with the following.... We use IPTables rather than firewalld. This is the default for Scientific Linux. Unlike Fedora (firewalld)

sudo chkconfig iptables on

sudo service iptables start

2. We need to make ABSOLUTE sure that the server can resolve its hostname to its IP (the real IP, not the loopback! This is very important, if you use the loopback the setup will fail) 
Locate your server's IP. 
Edit /etc/hosts
Add in the line: YOUR.HOSTNAME.HERE
Modifiy to the actual IP address your server has on your network. 
Modify YOUR.HOSTNAME.HERE to be the name your server will have (ex =
3. Enable a few services that aren't setup. ( This fixes a problem with us enabling the ISO NFS storage later on)


sudo chkconfig rpcbind on

sudo chkconfig nfs on

sudo chkconfig nfslock on

sudo service rpcbind start

sudo service nfs start

sudo service nfslock start

Now, Lets get back to the "normal" install. 
Run the setup scripts (engine-setup)
sudo engine-setup --config-allinone=yes 
Complete all of the questions and the install should succeed now. Make sure that when you choose what firewall to use to specify "IPTables". 
On to the admin interface! 
Once the configuration completes, it will print out the URL used to access the admin backed. 
  • Get logged in to the "Administration Panel" and click on the "Storage" Tab. 
  • Click on "ISO_DOMAIN", at the bottom middle on the new info pain, click on "Data Center". 
  • Click "Attach". Select "local_datacenter". 
  • Click OK and wait! 
At this point you now have the server setup and ready to go. We just need to upload an ISO to get installed on. 
Use something such as WINscp to connect to your sever as root. 
Navigate to: /var/lib/exports/iso/
Upload any .ISO files you want to be available to your hosts here. 
 Good Luck and Happy Virtualizing! You are good to go. Build some servers and have some fun!
 *NOTE: These instructions will fix the following errors. 
libvirtd failure:  vdsm vds WARNING Unable to load the json rpc server module. Please make sure it is installed.

Failure to install properly: Error: Host was found in a 'Failed' state. Please check engine and bootstrap installation logs. Please check log file .....

(Note: the Host was found in a 'Failed' state. Is an error with having your /etc/hosts setup wrong. See above). 
 Exception: Error: Timed out while waiting for host to start : This error is due to missing DBUS packages. Please see "Configuring the repository" to resolve this issue.