Today I have been playing around with some Python. This time using Pyrax and the Rackspace API. Here is how I did it. In my case I was using a CentOS 7 image.
Step 1. Install pip and pyrax
yum install python-pip gcc make
pip install --upgrade pip
pip install pyrax
Step 2. Consult the docs!
https://developer.rackspace.com/docs/cloud-servers/getting-started/
Which has support for JAVA, PHP, Python, GO, RUBY, .NET and more.
Step 3. Create your import directives
import os
import pyrax
Step 3. Create your Authorisation
# Authentication Section
# myusername is the mycloud username for the Rackspace User in portal
# 99ghghghghgh12345a289872342 is the APIKEY, you need to replace these with the values you use for your account
pyrax.set_setting("identity_type", "rackspace")
pyrax.set_default_region('LON')
pyrax.set_credentials('myusername', '99ghghghghgh12345a289872342')
cs = pyrax.cloudservers
Step 4. Listing some flavours: It’s possible to list the different virtual machine flavors (HARDWARE TYPE)
flavor_list = cs.list_flavors()
print flavor_list
Step 5. Set the flavor we want to use to create a server. In this case we are spinning up a performance 1 server with 1GB RAM.
flavor = cs.flavors.get('performance1-1')
Step 6. Set the image we want to use to create the server. I have a custom image from a previous server I made I want to use.
image = pyrax.images.get('d9aa9583-6468-4963-85b7-b6d1025cd0c7')
Step 7. Create the server with the parameters: name, image and flavor.
server = cs.servers.create('testing1', image.id, flavor.id)
The complete file should look like:
import os
import pyrax
# Authentication Section
pyrax.set_setting("identity_type", "rackspace")
pyrax.set_default_region('LON')
pyrax.set_credentials('adambull', '99ghghghghgh12345a289872342')
cs = pyrax.cloudservers
flavor_list = cs.list_flavors()
flavor = cs.flavors.get('performance1-1')
image = pyrax.images.get('d9aa9583-6468-4963-85b7-b6d1025cd0c7')
server = cs.servers.create('testing1', image.id, flavor.id)