Rackspace

Retrying Server Builds with Ansible

A common problem with building multiple servers in the cloud is an intermittent failure in one build that can stop your entire deployment process. With the right retry logic you can avoid this problem with Ansible.

I’m using until to check the output from the rax module. Using the length Jinja2 filter, I can check if the correct number of instances have been created. This should retry the task 3 times with a delay of 5 seconds between attempts.

Ansible's Rackspace Dynamic Inventory Plugin

Installing

Installing inventory plugins isn’t intuitive, and the documentation available on this process isn’t immediately clear. The instructions found on this page Ansible Documentation can be adapted for the Rackspace plugin.

It boils down to this for the Rackspace plugin:

  1. Grab the latest version of rax.py from the plugins/inventory folder on GitHub. Raw GitHub Link
  2. Place this file on your Ansible master. The location doesn’t matter that much, but convention says to put it in /etc/ansible/rax.py.
  3. Make this script executable by issuing chmod +x /etc/ansible/rax.py.
  4. As the user that runs Ansible, create the following file at ~/.rackspace_cloud_credentials: (Be sure to replace the appropriate values with your Rackspace username and apikey.)
[rackspace_cloud]
username = my_username
api_key = 01234567890abcdef

Target the rax.py script in your ansible run: ansible -i /etc/ansible/rax.py webserver -m ping

Deploying to Rackspace using salt-cloud

These instructions should be a nice and easy start to deploying Rackspace Cloud servers using the salt-cloud tool. Just follow along exactly, and at the end you should have a fully functional salt-cloud deployment tool.

Dependencies

I’m performing my installation on a Debian 7 (Wheezy) server, where my salt-master already exists. The following two commands should install salt-cloud, and all the necessary dependencies. This assumes you are already using the Python tool pip.

Load Balancing in the Cloud

This article is in response to a request by Shawn Laasch and Jordan Rinke. Request your topic today! This article will focus on Rackspace Cloud Load Balancers.

Cloud Load Balancers

Load balancing is performed by a device or service acting as a single endpoint to your application or site. This device then spreads the requests it receives across multiple back end nodes. There are benefits to using a load balancer in your configuration:

No Hassle Blog Automation

Managing a blog can be a hassle. Operating system updates, blog software updates, and server security take up tons of time. Don’t forget about scaling your blog if you get popular. Inspired by the Rackspace DevOps post on their new blog format, I’ve setup my own version using Pelican instead of Octopress.

Resources

This tutorial will assume you have two systems to manage your blog.

  • Local Workstation
  • Remote Server

The local workstation will be used to manage your blog posts, as well as uploading the content. This system will need git and Pelican installed.

Passion Haiku

I wrote this haiku as part of my Rookie Orientation at Rackspace:

Burning desire grows.
Smoldering embers ignite.
Show them your passion.