This post is an amalgamation of Vladimir Vuksan’s Provision to cloud in 5 minutes using fog (EC2-specific) and Jeff Gran’s Bootstrapping an Ubuntu Server on Rackspace Using Cloud-Init and Fog – I contributed little more than (inexpertly) gluing them together.
Assuming you already have the Fog gem installed:
First, as a prerequisite and as Jeff Gran notes, you’ll need to create a Rackspace image with the cloud-init package installed.
Next, similar to what Vladimir Vuksan describes, create a config.rb file, and populate the following values as appropriate for your environment:
#!/usr/bin/env ruby @flavor_id = 3 @image_id = 1234567 @rackspace_username = 'example' @rackspace_api_key = '1234....' @private_key_path = './ssh/id_rsa' @public_key_path = './ssh/id_rsa.pub'
The flavor_id values and image_id specify the instance size and the image you built with cloud-init installed (see the “fog” executable’s “Compute[:rackspace].flavors” and “Compute[:rackspace].images”, respectively); the Rackspace username and api_key can be retrieved from within the console under “Your Account: API Access.” The SSH key pair will be what you use to access the new instance as root.