major.io words of wisdom from a systems engineer

supernova: Manage multiple OpenStack nova environments with ease

While working on multiple nova (OpenStack Compute) environments at Rackspace, I found myself thrashing between multiple terminal windows where I had exported environment variables for python-novaclient to use. I ended up requesting some image and instance deletions in a terminal window only to find that I’d done the deletions in the wrong nova environment. Once I realized what I’d done (and after a small bit of cursing), I knew there had to be a better way to work with multiple environments.

That’s the purpose behind a small python project of mine: supernova.

Using supernova gives you a nice set of benefits:

  • switch between environments quickly
  • no worrying about which environment variables are exported in which terminal
  • novarc files are a thing of the past
  • share your simple configuration file skeleton with your teams
  • credentials can be stored in your OS keyring/keychain
  • add novaclient debugging to particular requests without touching configuration files

Installation is very straightforward:

git clone git://github.com/major/supernova.git
cd supernova
python setup.py install

All of the configuration instructions and usage examples are over in GitHub. As with any of the code I write, if you find a problem or spot an idea for an improvement, submit an issue or pull request. I try to jump on those as soon as I can.