My First OpenStack Instance on DreamCompute

DreamHost has been active in the OpenStack arena for some time, and now they have added it to their hosted offerings (still in beta) under the name DreamCompute.
I was lucky enough to be included in their beta period (request an invitation here) and am excited to see what they have to offer.

Once I punched in my beta code, I was sent a set of credentials to use (they differ from my existing DreamHost ones) and a link to the quickstart and their DreamCompute wiki section. I had trouble determining exactly what they have running, but it seems like it might be the Havana release running without Heat. Beyond that inexplicable difference from stock OpenStack, it looks like they just skinned Horizon and let it loose (I’m sure it wasn’t that simple).

What do you get?

First and foremost, DreamCompute account gives you your own Openstack Tenant. This means you get total control over your network, access to your instances, and how your resources are allotted.

Speaking of resources, the folks at DreamHost have been pretty generous: I got up to 10 instances, 50 gigs of ram, 20 CPUs, a terrabyte of disk, and 5 floating IPs. Not too shabby for a free beta!

Quickstart

Once you’ve reset your password, you are directed by the welcome email to the quickstart. The first thing you’ll have to do is wire up your network and put in place a security group to use when creating an instance. The quickstart feature will do this for you: create an IPv4 and IPv6 network, a security group permitting ssh, http, and https, and an initial floating IP to use.

default group settings

CLI

Now that your network is nicely configured, lets test out the API from the command line.

The first step is to download your Openstack RC File. Navigate to Access & Security from the left menu, then select the API Access tab. Now you can Download Openstack RC File.

In a terminal, source this file (source ~/Downloads/dhc447391-openrc.sh) and punch in your DreamCompute password. Now you can use the Nova (compute management) / Neutron (network management) cli clients to control your tenant.

We can’t get into our VM quite yet however; we still need to give it a Floating IP in order to shell in.

Assigning a Floating IP

In order to access our instance from outside of the private network, we must give it a Floating IP. We are allowed 5 of these, but they aren’t yet allocated to us. So let’s first allocate one in our tenant. Then we can associate it to our instance.

Associate Floating IP

For this step, we need to wire up a bunch of things, but what we eventually want, is to run neutron floatingip-associate --fixed-ip-address <Private_IPv4_Address> <Floating_IP_ID> <Port_ID> in order to configure all the wiring.

Try out the Instance

$ ssh dhc-user@173.236.249.21
The authenticity of host '173.236.249.21 (173.236.249.21)' can't be established.
ECDSA key fingerprint is a3:5f:f8:4a:bb:2f:51:5f:ee:92:01:4f:39:e4:b8:34.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '173.236.249.21' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.13.0-24-generic x86_64)
* Documentation: https://help.ubuntu.com/
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
dhc-user@my-server:~$

Wrapping up

Although I’m a little disappointed at the lack of heat support, DreamCompute is a very slick and turn-key IaaS solution using OpenStack.