In this series of posts on “Building an on-premise private cloud” we have so far:
- Installed Eucalyptus, an Infrastructure-as-a-Service offering, and
- Configured Eucalyptus to start VMs with IP addresses from a private VLAN
Before we jump into bundling, uploading, and registering images, let’s first download and install Euca2ools.
Euca2ools are command-line utilities to help:
- Manage Images (bundle, upload, register, delete, etc.)
- Manage Instances (start, reboot, terminate, list, etc.)
- Manage Volumes & Snapshots (attach, detach, list, create, delete, etc.)
- Manage IP addresses (associate, disassociate, list, etc.)
- Manage SSH key pairs (add, delete, list)
- Manage Security groups (add, delete, list, add rules)
- Query availability zones (clusters)
Euca2ools is compatible with Amazon EC2 and S3 web services. In fact, Euca2ools is modeled after Amazon EC2 API and EC2 AMI tools.
Since I have been using CentOS 5 32-bit, I’ll describe the tar ball install process for CentOS 5. Also, in my case I’ll install euca2ools on my front-end machine (192.168.0.114)
Note: You may choose to go the yum (you will need to add the http://www.eucalyptussoftware.com/downloads/repo/euca2ools/$VERSION/yum/centos/ repo first) route instead of the tar ball.
Note: If you are using a Debian-based distro, feel free to install using apt-get (apt-get install euca2ools)
First download the tar.gz package for CentOS 5 32-bit – in this case, euca2ools-1.2-centos-i386.tar.gz
Next un-tar the above package
tar zxvf euca2ools-1.2-centos-i386.tar.gz
Before you install the rpm packages in the euca2ools-1.2-centos-i386 directory, you need to install swig as follows:
yum update yum install swig
Next, go into euca2ools-1.2-centos-i386 directory and install the rpm packages as follows:
cd euca2ools-1.2-centos-i386 rpm -Uvh python25-2.5.1-bashton1.i386.rpm python25-libs-2.5.1-bashton1.i386.rpm euca2ools-1.2-1.i386.rpm
Confirm that euca2ools is install as follows:
rpm -qa euca2ools
In the first post I used Amazon EC2 API tools to test the Eucalyptus install. To be precise I had used the ec2-describe-availability-zones command.
Now that we have Euca2ools installed we can use the euca-describe-availability-zones command instead. Remember to source in the eucarc file first.
cd .euca source eucarc euca-describe-availability-zones verbose
AVAILABILITYZONE |- vm types free / max cpu ram disk
AVAILABILITYZONE |- m1.small 0004 / 0004 1 128 2
AVAILABILITYZONE |- c1.medium 0004 / 0004 1 256 5
AVAILABILITYZONE |- m1.large 0002 / 0002 2 512 10
AVAILABILITYZONE |- m1.xlarge 0000 / 0000 2 1024 20
AVAILABILITYZONE |- c1.xlarge 0000 / 0000 4 2048 20
Nice!
Feel free to play around with some of the other commands. You can get a list of commands by typing “euca” and pressing the TAB button twice. You could also run the command ls /usr/bin | grep euca
euca_conf
euca-delete-volume
euca-describe-keypairs
euca_killall
euca-run-instances
euca-add-keypair
euca-confirm-product-instance
euca-deregister
euca-describe-regions
eucalyptus-cloud
euca_sync_key
euca-allocate-address
euca-create-snapshot
euca-describe-addresses
euca-describe-snapshots
euca-modify-image-attribute
euca-terminate-instances
euca-associate-address
euca-create-volume
euca-describe-availability-zones
euca-describe-volumes
euca-reboot-instances
euca-unbundle
euca-attach-volume
euca-delete-bundle
euca-describe-groups
euca-detach-volume
euca-register
euca-upload-bundle
euca-authorize
euca-delete-group
euca-describe-image-attribute
euca-disassociate-address
euca-release-address
euca-version
euca-bundle-image
euca-delete-keypair
euca-describe-images
euca-download-bundle
euca-reset-image-attribute
euca-bundle-vol
euca-delete-snapshot
euca-describe-instances
euca-get-console-output
euca-revoke
To get more information on a particular command, type in the command name following by the argument –help. For instance:
euca-describe-availability-zones --help
Shows information about availability zones.
euca-describe-availability-zones [--region region] [-h, --help] [--version] [--debug] [zone1 zone2...zoneN]
OPTIONAL PARAMETERS
–region region to describe availability zones for
zone1 zone2…zoneN zones to describe.
-a, –access-key User’s Access Key ID.
-s, –secret-key User’s Secret Key.
-U, –url URL of the Cloud to connect to.
–config Read credentials and cloud settings from the
specified config file (defaults to $HOME/.eucarc or /etc/euca2ools/eucarc).
-h, –help Display this help message.
–version Display the version of this tool.
–debug Turn on debugging.
Euca2ools will use the environment variables EC2_URL, EC2_ACCESS_KEY, EC2_SECRET_KEY, EC2_CERT, EC2_PRIVATE_KEY, S3_URL, EUCALYPTUS_CERT by default.
As we continue these series, we will see more and more of the Euca2ools commands.