Posts

No Hassle Blog Automation Redux
reading time: 3 minutes

Due to the difficulty in maintaining a full Jenkins instance, I have revisited the blog automation issue and have replaced Jenkins with Drone. Making use of a tool like Drone greatly simplifies the setup process and lowers the barrier of entry for this type of project.

Requirements

There are a few requirements for this setup:

  • Rackspace Cloud Account
  • Existing Pelican Blog
  • GitHub Account
  • Linux Administration Knowledge

You should also read my original article .

Deploying Ansible Tower using HEAT
reading time: 4 minutes

Deploying Ansible Tower isn’t hard, but automating a server build and triggering the installation lowers the barrier of entry for trying out Tower. This article will describe the HEAT Template I’ve created to automate this process.

Anatomy of a HEAT Template

Templates are broken into several main sections. I’m going to describe each one of them so you fully understand the process. Follow along here: Ansible Tower HEAT Template

Description and Version

It is important that the Version information you specify matches the HEAT version in use. The description should describe the overall goal of the template.

Ansible's Rackspace Dynamic Inventory Plugin
reading time: 1 minute

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
reading time: 3 minutes

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.

IRC Logging Bot
reading time: 2 minutes

This article is in response to a request by Ryan Jung. Request your own article.

One of the disadvantages of using IRC over another chat medium is the lack of logging while you aren’t connected to the server. In this article, I will describe the process I used to implement logging for my favorite IRC channels.

The Environment

Pierc is my choice of logging bot for this article. It logs the contents of IRC channels to a MySQL instance, and presents an easy to use web interface.