Ovirt-developer-installer
Warning, this document is a work in progress, use at your own risk!
Contents |
Getting Started
Hardware configuration
The current version of oVirt supports two hardware configurations:
- oVirt server and oVirt node(s) running on a common LAN. Requires that you have control of local DHCP and DNS servers. Server and node(s) need only have one NIC each.
- oVirt server and oVirt nodes(s) running on a separate subnet. Requires that your server machine have 2 NICs, and that the node(s) be connected to a private subnet that one of the server NICs is also connected to (the "admin network"). The other server NIC should be connected to your main LAN. If your node(s) have multiple NICs, the other NICs can also be connected to the main LAN.
In the end, your network configuration should resemble the architecture at ArchDiagrams, although you will probably be collapsing at least the Guest Network and the Storage Network together unless you are setting up a fairly large deployment.
Getting the software
- We recommend installing the released version of oVirt described at current release. The directions assume you are building the rpms onto the same machine that will be running the oVirt Server Suite, and that this machine is running Fedora 10.
- Note, if you are planning on deploying this as an appliance, that is a different process
- Before starting, you must have all network interfaces on the machine setup (e.g., if you are going to have a provisioning/mgmt network on eth1, then eth1 needs to already have a network config), and Network Manager should be disabled, as shown here.
- Currently install is known not to work if you have mod_ssl installed on your server machine. We rely on freeipa which uses mod_nss instead, and conflicts with mod_ssl.
- We recommend installing yum-fastestmirror to help avoid installer errors due to your defaul yum repos being slow and timing out
Prepare the Installer
* Create /etc/yum.repos.d/ovirt-local.repo, change the baseurl to your local ovirt-cache/ovirt directory, which you created above.
[ovirt-local] name=oVirt-local baseurl=file:///home/ovirt/ovirt-cache/ovirt enabled=1 metadata_expire=1 gpgcheck=0
* Install the ovirt-server-installer RPM
# yum install ovirt-server-installer
* Run the oVirt install configuration creator
# /usr/sbin/ovirt-installer
[root@localhost ~]$ ovirt-installer This installer will configure the ovirt installation based on a series of questions. When complete, you will be asked to install oVirt or do the installation manually. Would you like to continue? |y| y
SELinux must be set to permissive until support is finalized
SELinux enforcing, would you like to set it to permissive? |y| y Setting SELinux permissive
Display detected networking devices
Below are the detected networking devices mac address interface ip address 00:00:00:00:00:00 : eth1 : 192.168.50.2 3e:f1:f4:2d:d6:93 : virbr0 : 192.168.100.1 00:1b:77:02:85:25 : eth0 : 192.168.1.197
Enter the interface for the Guest network: |eth0| eth1 Enter the interface for the Admin network (this may be the same as the Guest network interface): |eth0| eth0
This next one means hostname on your Admin network. This is what the nodes will communicate with, _not_ what will be seen from the Guest network
Enter the hostname of the oVirt management server (example: management.example.com): management.ovirt.priv
If you have an existing DNS server and wish to use it to provide DNS to your managed node, you will need to enter "y" below and configure it according to the documentation at XXX. If you do not have a DNS server on your network, enter "n" and we can provide one
The following DNS servers were found: nameserver 172.16.52.28 nameserver 10.11.255.27
Use this systems's dns servers? n
DHCP Setup
Does your Admin network already have dhcp? n Enter the first 3 octets of the dhcp network you wish to use (example: 192.168.50): 192.168.50 Enter the dhcp pool start address (example: 3): 3 Enter the dhcp pool end addess (example: 100): 50 Enter the dhcp domain you wish to use (example: example.com): |localdomain| ovirt.priv Enter the network gateway for your Admin network (example: 192.168.50.254): 192.168.50.1 Provide pxe/tftp capability? y Do you have a cobbler already that you wish to use? n We will setup a cobbler instance, please provide the following information
Enter your cobbler username: cobbler Enter your cobbler user password: ********
Enter a password for the ovirt postgres account: ******** Enter your realm name (example: example.com): ovirt.priv
NOTE: The following pasword will also be your ovirtadmin password for the web management login # Enter an administrator password for FreeIPA: ********
* Run the ovirt installation
# ace -d -l <logfile> install ovirt
Post Install
- Now that your server is up and running, you probably want to spin up some nodes, so you might want to set up an nfs mount. The easiest way to set one up is to use system-config-nfs, making sure you select read/write.
- You will also want to add one or more profiles to cobbler, so you can install something on your new node. Assuming you have a Fedora install cd handy, do the following on your oVirt server:
# cobbler distro add --name F10-i386 --kernel=/tmp/isolinux/vmlinuz --initrd=/tmp/isolinux/initrd.img
- Go to the <your-server>/cobbler/web add a repo. Add a name and the mirror location to the $installcd root directory (http/ftp are easiest if you can make it available by that). Uncheck mirror locally so we dont waste hours of importing. Click save.
- Still in the cobbler web ui, add a profile - add a name, pick the distro to the one above, and go down and pick the repo we added.
Assuming you have a full dvd of F10 around (you might want to copy it onto a local drive or nfs share somewhere):
mkdir /tmp/f10dvd;mount -o loop <location>/isos/Fedora-10-x86_64-DVD.iso /tmp/f10dvd cobbler import --mirror=/tmp/f10dvd --name=Fedora10 # replace the /tmp/f10dvd with whatever you mounted it to
After the import finishes:
In your browser goto: http://$cobblerip/cobbler/ks_mirror/ grab the created fedora import directory name and the full url for it
cobbler webui > add new kickstart named f10.ks. Paste in the contents between the #'s or cobbler will throw all kinds of errors with comments in the kickstarts. Replace the url with the one gathered from the above step
########################## sample kickstart ##########################
url --url=http://<ip>/cobbler/ks_mirror/fedora10-x86_64/ $yum_repo_stanza %post $yum_config_stanza $kickstart_done
########################## sample kickstart ##########################
cobbler webui > profile > list > click on the fedora10 profile - Edit kickstart filename to: /var/lib/cobbler/kickstarts/f10.ks (change the filename is different)
cobbler sync
Other Config Stuff
- Once you have a vm, if you want to be able to use 'web console' from the web app, you need to set serial console to be on in your grub.conf in the managed vm. Append to the end of your kernel line:
console=ttyS0,115200 #adjust this speed if you need to
Common Issues/Troubleshooting
Server Troubleshooting
- I have this error in my taskomatic/db-omatic logs, what do I do? ERROR Tue Jun 02 12:50:55 -0400 2009 (2636) Unable to determine qpid server from DNS SRV record, retrying..
dig +short srv _qpidd._tcp.ovirt.priv You should get something like this back: 0 0 5672 ovirt.priv.
Verify that dnsmasq is running and that /etc/resolv.conf contains a nameserver entry pointing to the IP of the management interface on the Ovirt server.
Node Troubleshooting
- If node shows 'unavailable(enabled)', but you know it is running, the best place to start is to run:
sudo ruby /usr/share/ovirt-server/qmf-libvirt-example.rb
This program lists all nodes, storage pools etc. on stdout every 5 seconds or so seperated by a set of dashes. If you see your node in there and it's still unavailable, then there is either something wrong with db-omatic or the time on your node is lagging behind.
- You can try restarting the ovirt-db-omatic service and check the logs. If it never sees your node then chances are it's an authentication problem with kerberos (often time-skew related or maybe networking issues). Same with qmf-libvirt-example above. If db-omatic sees it, marks it available, and then unavailable again, then it may be caused by time skew on the node.
- If you have access to the node (non-release builds), you can test the qpid connection to server:
service libvirt-qpid stop export QPID_TRACE=1 libvirt-qpid --broker <hostname-of-server>
This will run libvirt-qpid normally (not as a daemon) and it will write some debug information to stdout. If this displays 'notice Initial object-id bank assigned: <some number>', then node is communicating successfully with the qpidd server.
Really there are a number of things that can go wrong:
- Networking issues prevent node from communicating properly with server.
- DNS configuration issues prevent getting DNS SRV records for various services.
- DNS configuration issues cause kerberos authentication to fail.
- Time skew causes kerberos authentication to fail.
- Time skew causes timestamps from node sent to WUI to seem to be out of date and so get marked as unavailable (no recent keepalive).
- Internal QPID/QMF issues prevent objects from showing up properly.
Accessing the Node
- For developer builds, root password is empty.
- For production images, root password is disabled. To access the node:
- boot the Node image into single user by appending 1 or single to boot parameters (press TAB if booting from CD/USB, for PXE edit pxelinux.cfg or use cobbler system edit --kopts=)
- set the password for root by running passwd
- exit to continue boot.

