XCP Building Instructions: Difference between revisions
Johngarbutt (talk | contribs) (→OPAM) |
Johngarbutt (talk | contribs) (→Yum) |
||
Line 136: | Line 136: | ||
<pre> |
<pre> |
||
yum install git xen-devel |
yum install git xen-devel |
||
yum install libuuid-devel time pam-devel tk-devel |
|||
</pre> |
</pre> |
||
Revision as of 14:25, 1 March 2013
Building xapi on CentOS 6.3
In this guide we look at an experimental way to get xapi running on CentOS 6.3
This is not Zeus, there are no packages yet. This is a developer install using: http://opam.ocamlpro.com/
Setting up Xen
While not strictly required for the build, to help us test it, lets install Xen.
Minimal install of CentOS 6.3 x86_64. Use network install iso on VMware fusion, or full iso, minimal confuses things.
This is based on http://wiki.centos.org/QaWiki/Xen4
yum install wget cd /etc/yum.repos.d/ wget http://dev.centos.org/centos/6/xen-c6/xen-c6.repo yum repolist yum install kernel kernel-firmware yum install xen
Now need to edit /etc/grub.conf Note: check the paths and the kernel version, also check dom0 memory. Also: The above 3.4.x kernel should the second in the list, xen should be first.
title xen root (hd0,0) kernel /xen.gz dom0_mem=1024M,max:1024M loglvl=all guest_loglvl=all module /vmlinuz-3.4.32-6.el6.centos.alt.x86_64 ro root=/dev/mapper/vg_jgarbuttcentos-lv_root rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=uk LANG=en_US.UTF-8 rd_LVM_LV=vg_jgarbuttcentos/lv_root rd_NO_MD quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto rd_NO_DM rd_LVM_LV=vg_jgarbuttcentos/lv_swap module /initramfs-3.4.32-6.el6.centos.alt.x86_64.img
Reboot, then check all is well:
uname -a xl info
Install OCAML 3.12.1
Currently this is not part of CentOS 6.3
One way is to build the following Fedora 17 srpm: http://dl.fedoraproject.org/pub/fedora/linux/releases/17/Everything/source/SRPMS/o/ocaml-3.12.1-1.fc17.src.rpm
Instructions can be found here, including the required setup: http://wiki.centos.org/HowTos/RebuildSRPM
You can download some very rough packages, and install them like this:
mkdir ocaml cd ocaml wget http://8ac390279a4a48a6f8b1-aaca1c7c7029a65ba2e38949339e1d8b.r35.cf3.rackcdn.com/ocaml-3.12.1-12.el6.x86_64.rpm wget http://8ac390279a4a48a6f8b1-aaca1c7c7029a65ba2e38949339e1d8b.r35.cf3.rackcdn.com/ocaml-camlp4-3.12.1-12.el6.x86_64.rpm wget http://8ac390279a4a48a6f8b1-aaca1c7c7029a65ba2e38949339e1d8b.r35.cf3.rackcdn.com/ocaml-camlp4-devel-3.12.1-12.el6.x86_64.rpm wget http://8ac390279a4a48a6f8b1-aaca1c7c7029a65ba2e38949339e1d8b.r35.cf3.rackcdn.com/ocaml-runtime-3.12.1-12.el6.x86_64.rpm wget http://8ac390279a4a48a6f8b1-aaca1c7c7029a65ba2e38949339e1d8b.r35.cf3.rackcdn.com/ocaml-docs-3.12.1-12.el6.x86_64.rpm wget http://8ac390279a4a48a6f8b1-aaca1c7c7029a65ba2e38949339e1d8b.r35.cf3.rackcdn.com/ocaml-ocamldoc-3.12.1-12.el6.x86_64.rpm yum install gdbm-devel ncurses-devel rpm-build rpm -i ocaml-*
The were created using this source rpm:
Install OPAM (from source)
Before you build, you will need:
- ocaml-3.12.1 ocaml-runtime ocaml-camlp4 ocaml-camlp4-dev (see above)
And a few other tools:
yum install make gcc
Build instructions are here: http://opam.ocamlpro.com/doc/Advanced_Install.html
Download the latest stable, and build it:
wget https://github.com/OCamlPro/opam/archive/latest.tar.gz -O opam-latest.tgz tar -xf opam-latest.tgz cd opam-latest ./configure make make install
Now you have OPAM you can initialise it:
opam init eval `opam config env`
Install xenopsd using OPAM
Ideally we would now install xenopsd uisng OPAM: http://wiki.xen.org/wiki/Building_Xenopsd
However, this would currently leave us without a working xapi.
Instead we will try and build xapi and xenopsd together.
Install External Dependencies
Yum
There are a few dependencies we need:
yum install git xen-devel yum install libuuid-devel time pam-devel tk-devel
Unpackaged
XCP has a custom version on vncterm:
wget http://a94cd2de16980073c274-9e5915cce229bfd373f03bf01a9a7c85.r57.cf3.rackcdn.com/vncterm-1.6.10-251.x86_64.rpm rpm -i vncterm-1.6.10-251.x86_64.rpm
This was built for CentOS 6.3 from the XCP srpm:
There is also an important python script:
wget http://a94cd2de16980073c274-9e5915cce229bfd373f03bf01a9a7c85.r57.cf3.rackcdn.com/eliloader -O /usr/bin/eliloader chmod +x /usr/bin/eliloader
This was taken from the debian version:
OPAM
There are quite a few XCP libraries we can install using OPAM:
opam install ocamlfind omake opam remote add xen-dev git://github.com/xen-org/opam-repo-dev opam install xen-api-libs-transitional stdext nbd tapctl libvhd oclock cdrom netdev xenopsd
Build XAPI
There is work going on to improve the build and moving it towards OPAM. But XAPI is still not packaged using OPAM. You can find this work here: https://github.com/jonludlam/xen-api/tree/ea-1254
A tree with additional fixes for building on CentOS 6.3 can be found here: https://github.com/JohnGarbutt/xen-api/tree/centos63
Now lets try and build this:
git clone https://github.com/JohnGarbutt/xen-api.git cd xen-api git checkout centos63 make set DEST_DIR=/tmp/xen-api mkdir $DEST_DIR make install
Now we need to configure things correctly: TODO
We can now run all the services we need:
TODO
Xen Cloud Platform Building Instructions (CentOS 5.6)
Building the xapi toolstack
The recommended way to build the xapi toolstack is in an environment similar to that in which it will be installed - therefore you'll need a CentOS 5.5 32-bit OS installed - we tend to use VMs for this.
For convenience, there are YUM repositories hosted on downloads.xen.org that contain the build dependencies of xapi. To enable these, create a a file /etc/yum.repos.d/xcp.repo with the following contents:
[xcp] name = xcp baseurl = http://downloads.xen.org/XCP/xcp-1.0-repo gpgcheck = 0
If you're building XCP unstable, replace '1.0' in the URL with 'unstable'.
Then execute the following commands:
rpm -e libaio yum install gcc autoconf automake tetex ghostscript java-1.6.0-openjdk java-1.6.0-openjdk-devel ant pam-devel python-devel zlib-devel openssl-devel dev86 rpm-build texinfo flex bison sharutils elfutils-devel ncurses-devel e4fsprogs-devel ocaml ocaml-findlib ocaml-getopt ocaml-type-conv ocaml-xmlm omake ocaml-xmlm-devel xen-devel xapi-libs-devel xapi-libs-utils
You'll also need mercurial or git depending upon whether you're building the unstable version of XCP or 1.0. These are both available in the EPEL repository (http://download.fedora.redhat.com/pub/epel/5/i386/repoview/)
Check out the xapi source:
hg clone http://xenbits.xen.org/XCP/xen-api.hg
or
git clone git@github.com:xen-org/xen-api.git
and then build it:
cd xen-api.hg make
or
cd xen-api make
It is also possible to build xapi in a non-CentOS 5.5 32-bit environment with the help of mock. Instructions for this are coming.