XenServer/PostInstall

= Post Install steps to prepare XenServer for OpenStack =

Some hints on preparing your XenServer machine to work with OpenStack.

Storage
You must ensure you correctly selected EXT storage for your local SR during the install process. It may have been called "XenDesktop Optimised" storage.

If you have an LVM based local SR, you will find that many of the OpenStack features will not work (due to the need for easy access to the raw VHD files).

http://support.citrix.com/article/ctx116324 has instructions for replacing your LVM SR with an EXT3 SR if this wasn't set up during the install process.

XenAPI Plugins
Only needed if not using DevStack.

OpenStack has some plugins to XenAPI. These must be installed in either:
 * /etc/xapi.d/plugins/ (XenServer)
 * /usr/lib/xcp/plugins/ (XCP on Ubuntu, aka Kronos)

You can get the plugins from here: https://github.com/openstack/nova/tree/master/plugins/xenserver/xenapi

Please note the plugins will not work correctly if they are not executable. They should have the correct permission in GitHub, but take care not to loose them when you copy them onto your XenServer host.

VIF Isolation Rules
Only needed if not using DevStack.

There are some docs on this here: https://github.com/openstack/nova/blob/master/plugins/xenserver/doc/networking.rst

You can get these from here: https://github.com/openstack/nova/tree/master/plugins/xenserver/networking

SSH configuration
To allow features like resize where a vhd disk is copied using ssh and rsyc, you will need to configure password-less login between all your XenServer hosts.

You can find much information on how to do this. One such source is: http://www.eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html

Required Directories
The 'resize' functionality depends on a specific directory on your host, so if you plan to use this functionality, run the following command on your XenServer hosts:

mkdir /images

Install Python 2.6 in Dom0
There may be times when you want to run python26 in Dom0. XCP/XenServer only ship with Python 2.4 installed and there is currently no supplemental pack to add python 2.6 support, but you can it can be done manually.

The best way is to use the latest package from EPEL (note Dom0 is currently CentOS 5.x i386):

wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -Uvh epel-release-5-4.noarch.rpm

Now XenServer knows about epel we can install python26 and easy_install-2.6:

yum install python26-distribute

This will install the following packages:
 * libffi
 * python26
 * python26-distribute
 * python26-libs

However, at this point, yum will get very confused between the Citrix/XCP version of packages and the EPEL version. To avoid any disasters when running "yum upgrade", it is best to disable the EPEL repository and delete the rpm you downloaded:

rpm -ev epel-release rm -f epel-release-5-4.noarch.rpm

Installing python-swiftclient
Now we have python 2.6 we can look at installing some python utilities.

To make life easier, lets install pip.

easy_install-2.6 pip

Now we can install what we need from pypi:

pip install python-swiftclient python-keystoneclient

At the time of writing (Jan 2013) there are no non-python dependencies, so this installs. One package complains that it can't compile some optimisations, but otherwise the above install goes very smoothly.

Supplemental Packs
XenServer and the binary XCP distribution have the ability to have supplemental packs. Once these are ready, all the following steps can be performed by a set of OpenStack supplemental packs.

There are plans to build a supplemental pack that can fetch and install a pre-prepared DomU templated.

One big advantage of having these packs, is that they can be installed as part of a PXE install of XenServer.