Automation

Ansible Blocks With Conditionals

3 minute read

Refreshed June 2026: module names updated to FQCN, the docs link fixed, and the examples re-verified against current ansible-core. The behavior described ...

Streamlining OS Deployments

3 minute read

UPDATE: 2023-05-11 - I found this post in my backlog, and it was never published or finished, as you can see. This conversation continues to be something ...

Using ARA Records Ansible Within Projects

2 minute read

While exploring some options to provide a level of reporting capabilities as part of a project I figured using ARA would be an awesome idea. My goal was to p...

Ansible - Using YAML For Inventory

3 minute read

Refreshed June 2026: the YAML example now uses the canonical all / children structure, and I added two sections on checking and converting inventories wit...

Ansible - Raspberry Pi Kubernetes Cluster

less than 1 minute read

Recently I started working on a little project which involved building a Kubernetes cluster using Raspberry Pi’s. I published this project on GitHub under an...

Ansible - Older Than N-Days Epoch

3 minute read

I recently had a scenario in which I needed to determine if a device’s last check-in time had been longer than 30 days. The real fun with this is that the re...

Ansible - IP Sets and DShield Block List

13 minute read

Refreshed June 2026: the approach here still works, but a few things moved since 2018. The ipaddr filter now lives in the ansible.utils collection, the DS...

Ansible - Defining Variables As Dictionaries

6 minute read

This post is to go through an example of defining Ansible variables as dictionaries rather than lists. I wanted to throw this together as I have not found a ...

Ansible - MAAS Management

2 minute read

Refreshed June 2026: when I wrote this, there was no first-class Ansible integration for MAAS, so I templated inventory out of the maas CLI by hand. Canon...

Ansible 2.3.1 - sshpass Error

2 minute read

As you may or may not be aware, Ansible 2.3.1.0 was recently released. After installing Ansible 2.3.1.0 in my Python virtual environment I immediately ran in...

Ansible - SSH Known Host Keys

1 minute read

I wanted to throw this together mainly for my own reference but maybe it will help someone else as well. I had a need to add every host’s ssh keys to every h...

Ansible - Provision Docker Swarm Mode (1.12)

7 minute read

Lately I have been working quite a bit with the latest Docker Swarm Mode released in Docker 1.12 and so far it has been pretty awesome. The days of spinning ...

Docker - Ansible - ELK Stack

7 minute read

In this post we will be going over setting up a quick and easy way to standup ELK Stack using Docker containers for each of our components required. Keep in ...

Vagrant - Multi-Group Ansible Provisioning

2 minute read

Refreshed June 2026: the Vagrant ansible.groups mechanism shown here still works the same way, so the core of the post is unchanged. What needed updating ...

Ansible - Using the set_fact module

3 minute read

Refreshed June 2026: the original solved this with six set_fact tasks, one per OS and webserver combination, each gated by a when. The cleaner pattern now...

Docker - Building containers using Ansible

4 minute read

Have you thought about building Docker containers using some Ansible role(s) or playbook(s) you may already be using for your regular automated deployments? ...

Vagrant - Ansible Provisioning multi-nodes

1 minute read

I am just throwing this out here for my own reference because I seem to always forget how to do this when spinning up multiple nodes within a Vagrant environ...

Ansible - Setting up an Ansible Control Machine

25 minute read

In this post we will be setting up an Ansible Control Machine to execute our Ansible tasks from. This server will not have writable access to our Git repos s...

Ansible - Clean Formatted Playbooks

5 minute read

While going through and doing some cleanup to various different roles and playbooks in my Ansible collection I wanted to share what I feel is good clean form...

Ansible - Debian Based Gotchas - Part-1

5 minute read

As I am currently running through some Docker setups between Debian Jessie and Ubuntu Trusty using Ansible I ran into a few gotchas. Now I would have assumed...

Ansible - Discover and Backup PowerDNS

3 minute read

Refreshed June 2026: the original did this with two playbooks, a shell wrapper, and a chain of curl, jq, grep, replace, and lineinfile to turn JSON into a...

Ansible - Using Ansible on Windows

3 minute read

Refreshed June 2026: the original version of this post installed Ansible on Windows through Cygwin, with Python 2 and Ansible 1.9. That approach is long d...

Packer - Vagrant - Ansible - Windows

6 minute read

While doing some Packer builds for Windows Server 2012 R2 to be used with Vagrant in order to do some Ansible learning I stumbled across this issue.

Hey, I can DevOPS my Network too! - Intro

1 minute read

This will be the introduction to a multi-post series on some different methodologies that you too can use everyday either to learn, test or develop your goin...

Learning Vagrant and Ansible Provisioning

3 minute read

After attending Tech Field Day (#NFD10) there was a great deal of discussion around using Vagrant and Ansible for building out environments and provisioning ...

Ansible - Generate Rundeck Inventory

2 minute read

Refreshed June 2026: the original version of this post generated Rundeck’s resources.xml by hand, with a templated play and a couple of sed cleanups. You ...

Ansible - KeepAliveD

3 minute read

Refreshed June 2026: module names are now FQCN, the handler uses ansible.builtin.service, and the health check in the template is wired in with a track_sc...

Ansible Playbook - GlusterFS - Apache

4 minute read

Read this first (June 2026): GlusterFS is effectively legacy now. Red Hat ended Gluster Storage and disbanded its engineering team at the end of 2024, ups...

Ansible Playbook - LVM

3 minute read

Refreshed June 2026: the original used bare module names with the old key=value argument style, installed the wrong package on RHEL, and shelled out to lv...

Creating vSphere VMs using Ansible

3 minute read

Refreshed June 2026: the original used the vsphere_guest module, the pysphere Python library, Ansible 1.8.4, and vCenter 6.0. All four are gone. vsphere_g...