So today, a customer wanted to know if there was a way to export a Rackspace Cloud Server image out of Rackspace to download it. Yes, this is possible and can be done using the Images API and Cloud Files. Here is a summary of the basic process below;
Step 1: Make container called ‘export’ in cloud files; You can do this thru the mycloud control panel by navigating to your cloud files and simply clicking create container, call it ‘export’.
Step 2: Create bash script to query API with correct user, apikey and imageid;
vim mybashscript.sh
#!/bin/bash # Username used to login to control panel USERNAME='mycloudusernamehere' # Find the APIKey in the 'account settings' part of the menu of the control panel APIKEY='mycloudapikeyhere' # Find the image ID you'd like to make available on cloud files # set the image id below of the image you want to copy to cloud files, see in control panel IMAGEID="5fb24bf2-afae-4277-b8fa-0b69bc98185a" # This section simply retrieves the TOKEN TOKEN=`curl https://identity.api.rackspacecloud.com/v2.0/tokens -X POST -d '{ "auth":{"RAX-KSKEY:apiKeyCredentials": { "username":"'$USERNAME'", "apiKey": "'$APIKEY'" }} }' -H "Content-type: application/json" | python -mjson.tool | grep -A5 token | grep id | cut -d '"' -f4` # This section requests the Glance API to copy the cloud server image uuid to a cloud files container called export curl https://lon.images.api.rackspacecloud.com/v2/10045567/tasks -X POST -H "X-Auth-Token: $TOKEN" -H "Content-Type: application/json" -d '{"type": "export", "input": {"image_uuid": "'"$IMAGEID"'", "receiving_swift_container": "exports"}}'
It’s so simple I had to check myself that it was really this simple.
It is. yay! Next guide shows you how to download the image you made.