Saturday, June 25, 2016

Running Your Own Cloud (Not the Google Drive Kind)

What does one mean when they say "cloud?" This buzzword is used to describe so many things. Google Drive is a cloud where you can store all of your documents and access them from anywhere. AWS is a cloud where you can create VMs and store objects and data for pragmatic retrieval. The difference between these two clouds lies in the audience; the concept remains the same: using resources that are managed remotely and without impact on your local system. That's the point of the cloud, and its been around for ages. We've just never called it the cloud. Today, we're going to be constructing the latter: we're going to make our own personal AWS or Google Cloud.

To do this, we'll be using OpenStack. OpenStack is an open source complete cloud stack for companies that want to quickly deploy their own private cloud. Canonical and Ubuntu are really pushing OpenStack hard, being as set up and management services are how Canonical makes money. But OpenStack by itself is free, and we're going to run it on our own system.

If your computer is powerful enough, you can spin up an Ubuntu Server VM and install OpenStack on that. Otherwise, if you want to use hardware, the system requirements are a bit hazy. I'll do my best to speculate.
  • 4GB or more of RAM (more is always better so you can run more VMs)
  • 2+ Processing Units (CPUs can be shared, but once that starts happening there's a huge performance decrease)
  • 64-Bit architecture (More of a recommendation, but still worth it in the long run)
  • Hardware Virtualization (Makes VMs much faster because it doesn't need to be emulated by software.)
  • Some decent amount of hard drive space
Once you have Ubuntu Server all setup and ready to go, do not follow the instructions on the Ubuntu website. Generally, the set up for for OpenStack entails many computers working together, and Canonical's Autopilot and Conjure-Up do a good job of doing that. However, we only want to run on the one computer.

OpenStack calls this a Dev Stack. Follow the instructions there, and make sure you have something to distract yourself with. Because this takes a long time. When they say an endless stream of text, they really mean it. It'll install everything it needs and set everything up for you. At the end, you should see something like this.

Now, depending on how you have your VM network set up, you may have to change it about. I use Host-Only as my network of choice (instead of being on a university network, I'm tethered through my phone and I have no LAN). You can bridge or do whatever you want. If you're confused, look at your VM Software's documentation or my very vague instructions from another post. Once you have that sorted out, go to the login page by going to the IP address of your machine (virtual or not).

If, after you change your networks settings, you get a "Can't connect to keystone" error when you attempt to log in, don't panic. OpenStack is still configured to use your old IP address. In your local.conf file, add a OFFLINE=True somewhere and rerun ./stack.sh. It won't take nearly as long because now it won't download everything (it's already downloaded and installed it.) It'll rewrite the configs for the various parts of OpenStack to use your loopback interface.

Now that's done, log in using the username admin and the password you specified. If you get in, then that's great! You now have your very own personal cloud! Play around with it and remember, don't be afraid to use the OpenStack docs. It's your friend even if it's not targeted to a individual user.

No comments:

Post a Comment