Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Setup Pre-requisites on an Ubuntu 12.04 or Mint 13 machine

Code Block

sudo aptitude install openjdk-6-jdk ant
sudo aptitude update
sudo aptitude install python-software-properties
sudo add-apt-repository ppa:natecarlson/maven3
sudo aptitude update
sudo aptitude install maven3

Install JSch:

Code Block

wget http://downloads.sourceforge.net/project/jsch/jsch.jar/0.1.48/jsch-0.1.48.jar
sudo cp jsch-0.1.48.jar /usr/share/ant/lib/

Install Boto (assumes you have Python and Setup Tools installed):

Code Block

sudo easy_install boto

Setup Pre-requisites on OSX

...

Unpack the archive, and run:

Code Block

sudo cp lib/ant-jsch.jar /usr/share/ant/lib

Install Boto (assumes you have Python and Python Setup Tools already installed):

Code Block

sudo easy_install boto

Test the Build

Clean up your environment

Code Block

rm -Rf /tmp/cloudstack
rm -Rf ~/.m2

...

Download the artifacts:

Code Block

mkdir /tmp/cloudstack; cd /tmp/cloudstack
wget --no-check-certificate https://dist.apache.org/repos/dist/release/cloudstack/KEYS
wget --no-check-certificate https://dist.apache.org/repos/dist/dev/cloudstack/4.23.0/apache-cloudstack-4.23.0-src.tar.bz2
wget --no-check-certificate https://dist.apache.org/repos/dist/dev/cloudstack/4.23.0/apache-cloudstack-4.23.0-src.tar.bz2.asc
wget --no-check-certificate https://dist.apache.org/repos/dist/dev/cloudstack/4.23.0/apache-cloudstack-4.23.0-src.tar.bz2.md5
wget --no-check-certificate https://dist.apache.org/repos/dist/dev/cloudstack/4.23.0/apache-cloudstack-4.23.0-src.tar.bz2.sha

Install gpg (if needed): sudo apt-get install gpg

...

Verify signatures and hash files:

Code Block

gpg --verify apache-cloudstack-4.23.0-src.tar.bz2.asc

This command should return "Good Signature".

Code Block

gpg --print-md MD5 apache-cloudstack-4.23.0-src.tar.bz2 | diff - apache-cloudstack-4.23.0-src.tar.bz2.md5
gpg --print-md SHA512 apache-cloudstack-4.23.0-src.tar.bz2 | diff - apache-cloudstack-4.23.0-src.tar.bz2.sha

Each of these commands should return no output. If there is any output from them, then there is a difference between the hash you generated locally and the hash that has been pulled from the server.

...

Create two new temporary directories:

Code Block

mkdir /tmp/cloudstack/git
mkdir /tmp/cloudstack/tree

Pull down the git repo:

Code Block

git clone https://git-wip-us.apache.org/repos/asf/cloudstack.git /tmp/cloudstack/git
cd /tmp/cloudstack/git
git archive --format=tar --prefix=/tmp/cloudstack/tree/ <commit-hash> | tar Pxf -

Unpack the release artifact:

Code Block

cd /tmp/cloudstack
tar xvfj apache-cloudstack-4.23.0-src.tar.bz2

Compare the contents of the release artifact with the contents pulled from the repo:

Code Block

diff -r /tmp/cloudstack/apache-cloudstack-4.23.0-src /tmp/cloudstack/tree

...

Verify the Code's License Headers

Code Block

cd /tmp/cloudstack/apache-cloudstack-4.23.0-src
mvn --projects='org.apache.cloudstack:cloudstack' org.apache.rat:apache-rat-plugin:0.8:check

...

Note: If you're on Ubuntu and using the PPA:natecarlson/maven3 (viz. Installing tools above), you've to use mvn3 instead of mvn, so mvn3 -P deps

Code Block

mvn -P developer,systemvm clean install
mvn -P developer -pl developer,tools/devcloud -Ddeploydb
mvn -pl :cloud-client-ui jetty:run

Configure CloudStack management server

Note
Need to set router.version.check to false in the global configuration page, after management server is up to workaround a devcloud issue, and then restart management server.

Once the management server starts on your local machine, execute the following commands to bring up a basic zone using the devcloud2 VM:

Deploy DevCloud (make sure mysql-connector-python is installed and that the management server is running)

Code Block

$ mvn -P developer -pl tools/devcloud -Ddeploysvr

Or, if the above does not work, maybe you're running mvn in debug mode using some MAVEN_OPTS, try marvin:

Code Block

$ cd tools/devcloud; python ../marvin/marvin/deployDataCenter.py -i devcloud.cfg

...

In a separate terminal run:

Code Block

mvn -Pawsapi -pl :cloud-awsapi jetty:run

...

Then using the access key and secret key of your admin user run the following python script:

Code Block

#!/usr/bin/env python

import boto
import boto.ec2

accesskey="2IUSA5xylbsPSnBQFoWXKg3RvjHgsufcKhC1SeiCbeEc0obKwUlwJamB_gFmMJkFHYHTIafpUx0pHcfLvt-dzw"
secretkey="oxV5Dhhk5ufNowey7OVHgWxCBVS4deTl9qL0EqMthfPBuy3ScHPo2fifDxw1aXeL5cyH10hnLOKjyKphcXGeDA"
 
region = boto.ec2.regioninfo.RegionInfo(name="ROOT", endpoint="localhost")
conn = boto.connect_ec2(aws_access_key_id=accesskey, aws_secret_access_key=secretkey, is_secure=False, region=region, port=7080, path="/awsapi", api_version="2012-08-15")

images=conn.get_all_images()
print images

res = images[0].run(instance_type='m1.small',security_groups=['default'])

...