Category: Ansible

Backup Cisco, MikroTik, and PaloAlto with Ansible

I have created playbooks for Ansible Network Device Backups. It is important to keep your device configurations backed up in the event of a hardware failure. Check out my GitHub for these Ansible playbooks. Some folks are starting to use Git for device backups as it provides diffs and backup capability. For those who don’t

Read More
AWX Isolated Nodes Broken after AWX Upgrade 

tl;dr: Python2 strikes back! Always use Python3. Ran into this issue after an upgrade of AWX from 14.0.0 to 15.0.1, where jobs will just fail with no output in AWX showing what happened. Just a blank box where stdout normally appears. Well great… Checked /var/log/, journalctl, and any other logging locations I could think of.

Read More
AWX Isolated Node Setup

Isolated nodes in AWX/Tower are used to do work in remote or secured networks. The only connection required is SSH between the “controller” node (the main AWX/Tower instance), and your remote node. This device can now do work for you in this remote network.  The problem with setting these up is that I have yet

Read More
Variable Issues in Ansible

This will be a short post today, feeling pretty dumb. Just learned the hard way that Ansible variable names can not start with numbers. It even says so in the first line of the documentation on variables: https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#creating-valid-variable-names You’ll get some pretty weird output if you try and start them with numbers. Basically it parses

Read More
Linux Patching with Ansible

Today I ran into an issue building a patching playbook for my Linux VMs. I have a mix of Ubuntu, and a couple of CentOS versions. I began with testing against Ubuntu and CentOS 8, and everything worked really well. As soon as I brought a CentOS 7 box into the mix, I started receiving

Read More
AWX LDAP/Active Directory Authentication 

An issue I ran into the other day when trying to setup Active Directory authentication in Ansible AWX, using LDAP auth type. These are a couple things that aren’t exactly called out in the documentation from Red Hat, and might not be obvious to all. You can use ldap:// if you aren’t setup for ldaps://

Read More
Useful Ansible Ad-Hoc Commands

Ansible doesn’t always have to be crazy complex playbooks doing super cool stuff. Sometimes, it’s really useful to get some output from al your devices like versioning, VLANs, IP addresses, etc… Here I plan to collect some of the one-liners I end up using so others can see what’s possible. This will be a dynamic

Read More
Ansible/AWX Custom Credential Types

Sometimes in Ansible you need to support legacy devices, or API’s that require hard coded passwords or API strings in your playbooks. One way around this is to use custom credential objects in AWX/Tower. This can keep your playbooks generic for storage in your version control system, and shareable, while keeping your credentials safe. If

Read More
Ansible Inventory Scripts

# TIL It appears that you are required to use a .ini file with inventory scripts in Ansible. If you try and use static variables in the script, it will appear to work when running the raw Python or whatever you’re using to gather the data. It will then fail with seemingly nondescript errors when

Read More
How to debug Ansible

There are a couple of ways to get more information about why a command/playbook is failing. These are listed more or less, in order growing more verbose. This is a pretty long post mostly due to the example output. Debug module in playbook The second most common method is using the debug module in your

Read More