I recently registered for an watched a Red Hat online seminar, Taste of Training for the upcoming Red Hat Open Stack course. Up until very recently, Red Hat OpenStack was only a technology preview, but now Red Hat is offering full support for OpenStack as part of it’s Red Hat Cloud Infrastructure product suite.
If you’re already familiar with OpenStack and/or Fedora, you can refer to this ’3 step’ guide from Red Hat: http://openstack.redhat.com/Quickstart Since you’re using Fedora 19, you’re not likely going to actually be able to complete the install in 3 steps as the guide suggests. I have found there are numerous steps that must/should be modified for a smooth installation, and I have compiled those steps here for my readers.
What I’m going to outline here are some of the necessary tips and methods I gleaned from hours of frustration. I also hope to include pretty screen shots for your convenience .
I also intend to use Quantum networking, and (coming soon) GlusterFS as cinder storage.
Physical network and host setup
Since I don’t have any extra switches laying around to re-purpose for this tutorial, I’m going to be conducting this multi-node install as VMs on an VMWare ESXi 5 cluster.
Unless otherwise stated, networks will be on the same physical network.
Fedora 19 installation
This is fairly straight forward. I am installing from a NetInstall CD with minimal package selection and no desktop.
Disk Setup:
20GB Disk.
Manual Partitioning:
/cinder : 4.96 GB LVM named ‘cinder-volumes-cinder’ in ‘cinder-volumes’ VG. OpenStack will expect to use a volume group named ‘cinder- volumes’ so we create one now. During installation, there’s no longer a way to manually create partitions, volume groups, and volumes. It’s a very round-about method but will work for now.
/boot: sda1, 500MB.
/: 13GB LVM named ‘fedora-root’ on ‘fedora’ VG.
swap: 2GB LVM named ‘fedora-swap’ on ‘fedora’ VG.
Setup OpenStack Repos
I’m using the updates-testing repo in Fedora 19.
Edit /etc/yum.repos.d/fedora-updates-testing.repo and change it to enabled=1
If you want to install OpenStack with the ‘stable’ repo, there are some edits you need to make to some important config files, and packstack does not support Quantum networking at this time. See the end of this article for information.
If you’re using Fedora 18, RHEL, CentOS 6, or Scientific 6 (or similar Enterprise distro), you will have to add the OpenStack EPEL 6 repo (or Fedora 18′s individual repo) by running the following: yum install -y http://rdo.fedorapeople.org/openstack/openstack-grizzly/rdo-release-grizzly.rpm
Install packstack
Packstack is an automated install tool developed by Fedora/Red Hat to automate much of the openstack installation. If you’ve ever tried install OpenStack before, you know there are a lot of moving parts, and packstack is pretty much essential if you’re not an OpenStack expert already (if you were, you likely wouldn’t be following this tutorial :p )
yum install -y openstack-packstack
Now that packstack is installed, we want to create an answer file which we can modify to customize our installation. These steps were compiled from the short training video and differ slightly from the quick start guide on openstack.redhat.com.
Problems Installing OpenStack with Packstack in Fedora 19
Somethings I did to get this stuff to actually install. Some of the puppet files provided by packstack are broken and cause all or parts of the installation of OpenStack software to fail. It’s clear that no one actually bothered trying to install OpenStack with packstack using Fedora 19 release candidate of packstack. I understand fixing one or two bugs or oversights, but I feel this section is a little heavy-handed for a ‘stable’ release. That said, the errors provided by the packstack are decently informative, and I was able to find solutions to the problems myself or by searching everyone’s favorite search engine.
I originally tried this install using the stable repo, and documented several fixes at the end of this article. At this time, I recommend using the updates-testing repo for installing OpenStack Grizzly.
Another folly by the Fedora 19 packstack team, the /etc/sysconfig/modules/kvm.modules is no longer present or needed. We must add an onlyif statement to one of our puppet manifest files to enable us to move past that part of the installation.
edit /usr/lib/python2.7/site-packages/packstack/puppet/templates/nova_compute.pp and modify the following section:
exec { 'load_kvm': user => 'root', command => '/bin/sh /etc/sysconfig/modules/kvm.modules', onlyif => '/bin/test -e /etc/sysconfig/modules/kvm.modules', }
Next, the openstack-dashboard won’t install due to dependency problem. The fix is to install python-django14 manually. yum install python-django14
After that’s finished, you should be able to install OpenStack using packstack.
Install OpenStack using Packstack
packstack –allinone
This should completely with no errors. Also, you should see the line “Installation completed successfully” in stdout. After installation completes, you’ll get a note about using the dashboard at http://youriphere/dashboard. However, at this time quantum networking is broken after installation. I have filed a bug workaround with Bugzilla here: https://bugzilla.redhat.com/show_bug.cgi?id=997137
I will sum up my report here: in the file /etc/quantum/api-paste.ini cut and paste the line admin_password=<password>
How do you log into the dashboard? That’s easy, there should be a keystonerc_admin file located in the /root directory (or perhaps the directory wherever you ran packstack from). cat that file to see the username and password. Log into the dashboard and make sure that it’s running.
Configure Quantum Networking with OpenVSwitch
If you followed this guide and used the –allinone install, then the interneral and external bridges should have been created automatically. I will be posting a future article/tutorial about how to manually setup bridges and configure your network settings.
Coming Soon: GlusterFS as cinder storage
In the mean time, why don’t you take a look at http://www.gluster.org/community/documentation/index.php/GlusterFS_Cinder
References
Some sources I have used to create this lengthy article.
http://fedoraproject.org/wiki/Getting_started_with_OpenStack_EPEL
http://fedoraproject.org/wiki/Quantum
http://fedoraproject.org/wiki/Test_Day:2013-04-02_OpenStack
http://openstack.redhat.com/forum/discussion/124/fedora-19-issues
https://bugzilla.redhat.com/show_bug.cgi?id=981116
https://bugzilla.redhat.com/show_bug.cgi?id=979041
Information that has changed
Fixes for the Grizzly in the stable repo. These issues have been addressed if you’re using the updates-testing repo at the time of writing this article. These fixes are in addition to the fixes I mentioned above.
Firstly, since Fedora 19 has moved from MySQL to MariaDB, when the package mysql-server is installed, Fedora 19 actually installs mariadb-server. While this is fine for most cases, puppet’s ability to adapt for this change is missing, so we must manually update the puppet manifests provided by packstack.
edit the following three files:
/usr/lib/python2.7/site-packages/packstack/puppet/modules/mysql/manifests/server.pp ,
/usr/lib/python2.7/site-packages/packstack/puppet/modules/mysql/manifests/server/config.pp ,
/usr/lib/python2.7/site-packages/packstack/puppet/modules/mysql/manifests/params.pp
and change all entries of mysql-server to mariadb-server
The next bug is more or less on Fedora 19′s packstack team. This may be fixed in a future version, but the version currently available from repos fails to create a keystone log file with proper permissions, which completely stops keystone from starting up.
edit /usr/lib/python2.7/site-packages/packstack/puppet/modules/keystone/manifests/init.pp and add the following section
file { '/var/log/keystone/keystone.log': owner => 'keystone', group => 'keystone', }