Today i was completely playing around with virtualization. I was playing around with Foreman and KVM, then i got
WebVirtmanager to play around, which is working perfectly with LVM storage pool. It’s almost a week since i saw a few videos related to Apache Cloudstack, so today i decided to give it a try. In this blog i will explain on how to set up Apache CloudStack on an ubuntu 12.10 Machine. Apache Cloudstack is one of the coolest cloud platform’s available. It supports hypervisors like KVM, XEN, vSphere. The latest version is 4.0.1-incubating. The source can be downloaded from here. There is a very good documentation available from Cloudstack.
Building Debian Packages from the Source
First we need to install the below dependency packages.
1. Apache Ant 2. JDepend 3. Apache Maven (version 3) 4. Java (Java 6/OpenJDK 1.6) 5. Apache Web Services Common Utilities (ws-commons-util) 6. MySQL 7. MySQLdb (provides Python database API) 8. Tomcat 6 (not 6.0.35) 9. genisoimage 10. dpkg-dev and their dependencies
Maven 3, which is not currently available in 12.10. So, we’ll need to add a PPA repository that includes Maven 3
$ add-apt-repository ppa:natecarlson/maven3
The current ppa supports only ubuntu 12.04 aka Precise, so edit
/etc/apt/sources.list.d/natecarlson-maven3-quantal.list and replace “quantal” with “precise”. So now the content of the file looks like below one
deb http://ppa.launchpad.net/natecarlson/maven3/ubuntu precise main deb-src http://ppa.launchpad.net/natecarlson/maven3/ubuntu precise main
Now we can start installing the dependencies,
$ apt-get install ant debhelper openjdk-6-jdk tomcat6 libws-commons-util-java genisoimage python-mysqldb libcommons-codec-java libcommons-httpclient-java liblog4j1.2-java python-software-properties maven3
Now we can resolve the buildtime depdencies for CloudStack by running the below command.
$ mvn3 -P deps.
Now there is a small bug, which add the dependency of “chkconfig” package to a few of the cloudstack packages. But “chkconfig” is required for Redhat based machines, not for debian based machines. So edit “Debian/control” file inside the apache cloudstack source folder and remove “chkconfig” from the dependency list. After that we can start building the debian packages.
$ dpkg-buildpackage -uc -us
The above command will build 16 debian packages.
Setting up a Local APT repo
Now we can set up a local apt repo so that we can install all these 16 packages along with their corresponding dependencies. First ensure that “dpkg-dev” is installed. After that copy all the packages to a specific location in order to create the local repo.
$ mkdir -p /var/www/cloudstack/repo/binary $ cp *.deb /var/www/cloudstack/repo/binary $ cd /var/www/cloudstack/repo/binary $ dpkg-scanpackages . /dev/null | tee Packages | gzip -9 > Packages.gz
We need to configure the local machine to use this local repo. Add the local repository in
echo "deb http://server_url/cloudstack/repo/binary ./" > /etc/apt/sources.list.d/cloudstack.list and run “apt-get update”. Now we can install the cloudstack packages.
$ apt-get install cloud-agent cloud-agent-deps cloud-agent-libs cloud-awsapi cloud-cli cloud-client cloud-client-ui cloud-core cloud-deps cloud-python cloud-scripts cloud-server cloud-setup cloud-system-iso cloud-usage cloud-utils
Now from the web browser go to “http://server_url:8080/client/. The default Username is “admin” and password is “password”. For the admin user, we don’t need to provide the domain option.