I’ve written about deploying devstack before in Contributing OpenStack Support to jclouds. That post covered running devstack locally in VirtualBox. I’ve been using that method for a while now but with a devstack env in VirtualBox, a jclouds dev env, browser, chat client, mail client, etc. etc. etc. all running on the same laptop it gets bogged down. I’m pretty sure I heard gears grinding and smoke was pouring out of the laptop at one point. I just don’t have the cores, RAM, and RPMs to run everything smoothly and you need smoothly or development starts to suck.
The biggest draw on resources is VirtualBox so it’s long past time to move that devstack VM to the cloud! Naturally I’m going to deploy on the Rackspace open cloud. It turns out this is significantly simpler/easier to do than deploying on VirtualBox.
Instructions
- If you don’t have one already, Sign Up for an open cloud account
- Go to the Cloud Control Panel
- Click Create Server
- Name: devstack-folsom
- Image: Ubuntu 12.04 LTS
- Size: 4GB RAM (you could probably get away with 2 GB)
- Click Create Server and note the password and IPv4 address (when it appears)
- When your server is Active, switch to a Terminal and run the following commands:
- ssh root@<IPv4 Address>
- apt-get update; apt-get install -y git
- git clone https://github.com/openstack-dev/devstack.git -b stable/folsom devstack/
- cd devstack/
- vim localrc # copy in the contents of this one
- ./stack.sh
- When devstack is done you can point your browser, OpenStack clients, and jclouds dev env all at <IPv4 Address>
- When you’re done with your development/testing you can delete the server to save money and just start fresh next time
Next
The next obvious thing to do is to automate the whole process above. I haven’t decided whether to do my own custom script or dive into something like CloudEnvy. Either way it needs to be automated but it’s always good to have the manual process documented to fall back on and understand everything end to end.
Coda
As you can see there are far fewer steps to creating a devstack env like this than on VirtualBox. There’s much less fiddling around with networking too. The big benefit for me though was the immediate increase in speed for the rest of my development tools on laptop.
yinyingpan
November 14, 2012 at 6:45 am
Hi Everett,
The way we deploy openstack on Rackspace open cloud is really elegant, simple and less time-consuming.
Thanks a lot for your posts. I’m now working on my semester project using Openstack Swift+jclouds. I am totally a newbie and was stuck in Openstack deployment on VirtualBox using devstack last week. And I also had the problem of limited resources on my laptop. Your posts really helped me out
I followed the instructions in posts ” Getting started with jclouds”,”Logging in jclouds”,”OpenStack devstack on the Rackspace open cloud”, all went well. But when I tested jclouds with OpenStack following the instructions in post “jclouds and OpenStack”, I got some errors, but I couldn’t figure out why. Could you give me a hand? Here is the link where I paste errors with logging https://gist.github.com/4071717 , and the one without logging https://gist.github.com/4071881
Thanks.
Everett Toews
November 14, 2012 at 8:49 am
I can see from you log output that you didn’t include the port for Keystone in your endpoint. Have a look at the post http://blog.phymata.com/2012/09/04/jclouds-and-openstack/ for how to connect jclouds to an OpenStack deployment.
BTW, the reason you saw all of that HTML in your logging output was because you were trying to connect on port 80. That’s where Horizon, the web dashboard, is listening.
Friendly note, before posting log output in a gist you might want to “sanitize” it. E.G. change the username/password/IP address to other values.
Yinying Pan
November 14, 2012 at 9:41 am
Forgive my kind of stupid carelessness. Unfortunately, I still got some errors. https://gist.github.com/4072802 , which is almost the same as I tried on ubuntu without logging https://gist.github.com/4071881.
Thanks for your reply and kind advice:-)
Everett Toews
November 14, 2012 at 2:01 pm
Hi again Yinying. I’m going to be out of town until next week so I won’t be able to help you out with this right now. In the meantime I invite you to join the jclouds user mailing list at https://groups.google.com/forum/?fromgroups#!forum/jclouds where I’m also subscribed as a member. Perhaps they can help you out until I return. Best of luck!
Yinying Pan
November 17, 2012 at 6:23 am
Hi Everett! Problem solved! Thanks to Andrew Phillips, he noticed that my problem looks similar to the one discussed at https://groups.google.com/forum/?fromgroups=#!topic/jclouds/y6BihiuhLSQ, which was solved in a recent jclouds release. After I updated to jclouds 1.5.3, everything went well.
kenperkins
April 10, 2013 at 11:31 am
I’ve been spinning up a fair number of these, and decided a minimum iptables is a must:
https://gist.github.com/kenperkins/5356012