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.