Do you want to learn more about automation, Ansible playbooks, or Ansible Tower but don't know where to start? I felt the exact same way and needed to find an easy yet powerful way to get started. This article is the first of a series of posts I will be sharing regarding automation, building Ansible Tower demos, and other related topics. Today I want to share with you my journey to building an Ansible Tower home lab, the struggles I experienced, what I learned, and how you can join the mission.
I wanted to use an Ansible playbook to configure a localized lab in an easy manner. If you are not already familiar with how Ansible automation works, let me briefly explain the main pieces that make this such a powerful tool. Ansible engine allows you to run playbooks and execute the job on remote endpoints. The power of Ansible is that you don't need to install an agent on any of the endpoints, so you can technically automate anything on the network.
An Ansible playbook is very easy to understand, write, and deploy. A playbook is a file (such as
file.yaml) that contains a set of instructions that executes a job on the endpoint you want to configure. This playbook is written in YAML (yet another markup language), which is a human-readable language that is easy to learn and understand. When you run a playbook, it executes commands, actions, scripts, etc. on the endpoints you are targeting. It can also integrate with other languages. I will not spend too much time on this topic this time around, but maybe I'll expand more in another post.
As you probably already know, the open-source way is a fantastic strategy to build skills, shared knowledge, and learn from others. At Red Hat, we live and breathe these values through our open culture, and this open environment is how I was able to build my first GitHub project.
I learned from one of our Specialist Solutions Architects (shout out to my friend Jerry C) that you could build a lab using Vagrant. We then collaborated to create the initial lab configuration. I quickly realized that I needed to document this information and share it with the world. I think this is a great way to help others build their own environment for learning automation.
I also wanted to create a base infrastructure where I could run demos for different use cases. My dream is to build a collection of demos for Linux, Microsoft, networking, patching, and many other areas. The problem is that I know I can not do this on my own and need the open-source community to help me succeed.
The idea is that, with the base infrastructure created, you can explore, experiment, and create new demos. You can then share them and add them to the GitHub project.
The Ansible Tower Demo base lab
The GitHub project m1820/atd was created to provide a stable, permanent, and versatile environment that is easily deployed and configured. This lab allows you to run the provided sample demos, test, build, and share your playbooks - all on your own computer.
On the project's page, you can find step by step instructions on how to build your own lab using open-source software—starting with VirtualBox, Vagrant, and Ansible engine. I have also created a tutorial video that walks you through this installation and configuration.
Once you complete the initial setup, you have a working environment with an Ansible Tower server, plus two Fedora servers that could be used as web servers. Since you have access to all the source code, you can reconfigure the servers provided, choose a different OS, or make any modifications you see fit.
Wrap up and resources
I hope this post was helpful, and you feel compelled to check out the project. Hopefully, you'll join the mission to build more demos!
[ Need more on Ansible? Take a free technical overview course from Red Hat. Ansible Essentials: Simplicity in Automation Technical Overview ]