I finally got around to switching to python-openstackclient after using python-novaclient and supernova for a number of years. Here's a quick way to get it set up if you're using Rackspace as a public cloud OpenStack provider and want to use multiple clouds or regions from one client.
Install python-openstackclient:
pip install python-openstackclient
Create a directory to hold your cloud config file:
mkdir -p $HOME/.config/openstack
Generate a clouds.yaml file, but make sure to put valid information for logging in (make sure to use your password instead of API key):
cat <<EOF > $HOME/.config/openstack/clouds.yaml
clouds:
rackspace:
cloud: rackspace
auth:
auth_url: 'https://identity.api.rackspacecloud.com/v2.0/'
project_id: rackspace-account-number
username: rackspace-account-username
password: rackspace-account-password
region_name: DFW,ORD,IAD,LON,SYD,HKG
EOF
When running the openstack client command, you'll need to specify the cloud you want to use, and then specify the region you want to call. By default, if --os-region-name isn't specified, it will use the first entry set in region_name. To list servers in an account:
openstack --os-cloud rackspace --os-region-name=IAD server list
To boot a quick server, first grab the flavor id and image id that you want to boot:
openstack --os-cloud rackspace --os-region-name=IAD flavor list
openstack --os-cloud rackspace --os-region-name=IAD image list
Then take the values you want and boot the server:
openstack --os-cloud rackspace --os-region-name=IAD server create --image <image-uuid> --flavor <flavor-name> --key-name my_key mytestserver
If for any reason you get an error that states the following:
No module named openstack.common
Check and see if you have some older Rackspace novaclient pip packages installed and remove them with pip uninstall:
positron:~ ant$ pip freeze | grep ext
os-diskconfig-python-novaclient-ext==0.1.2
os-networksv2-python-novaclient-ext==0.25
os-virtual-interfacesv2-python-novaclient-ext==0.19
For more information on configuration options, check out the python-openstackclient configuration docs.