Pat

Welcome to Pat’s Bytes

Learning in public. I write about Ansible, homelab infrastructure, Linux, and DevOps tooling — mostly things I’m actively building or breaking.

Welcome to my corner of the internet where I share tutorials, document tech experiments, and try to save my future self some debugging time. Grab a coffee and dive in.

What You’ll Find Here

This blog isn’t trying to cover everything - it’s a focused collection of real-world guides and solutions I’ve actually implemented. Most content comes from homelab adventures, work challenges, and concepts I’m solidifying through writing.

Why This Site Exists

We’ve all been there - you solve a complex problem or setup up a new service, write zero documentation, and six months later you’re googling the same issue again. This site is my anti-pattern to that cycle. It’s equal parts:

Back in Action

After a year-long hiatus, I’m dusting off the blog and migrating from Hugo to MkDocs. Some articles are getting fresh rewrites, others are being retired, and new content is in the pipeline. The rust is coming off slowly but surely.

Before You Dive In

Fair warning: I tend to favor open-source solutions, automate against Proxmox VE, and have strong opinions about YAML indentation. Your mileage may vary, but the patterns should translate to your environment.

If you spot errors, have questions, or want to share a better approach - please reach out. The best part of learning in public is learning from others.


Ansible Navigator: Beginner's Guide

Ansible Navigator offers a new way to use familiar Ansible tools within execution environments. With it, you can run playbooks, view inventories, access Ansible documentation, and more. Let’s explore some of the basics of Ansible Navigator. The purpose of Ansible Navigator is to enable running playbooks within execution environments, the same way that Ansible Automation Platform runs jobs inside them. This functionality means you can now develop and test your playbooks in the same environment you would be running in production. ...

December 29, 2023 · updated August 24, 2025 · Pat · 5 min · 1045 words

Reduce Duplicate Ansible Tasks with Jinja Conditional Logic

Use Jinja2 conditionals to reduce duplicate Ansible tasks without sacrificing readability.

December 28, 2023 · updated August 30, 2025 · Pat · 2 min · 219 words

How to Create a Template with HashiCorp Packer on Proxmox VE

Use HashiCorp Packer to automate the creation of a reusable RHEL template on Proxmox VE.

September 30, 2023 · Pat · 4 min · 799 words

Ansible Lookups: Password vs Random_String

Generate secure random passwords in Ansible with password and random_string lookups.

September 29, 2023 · Pat · 3 min · 620 words

Ansible Builder: A Beginners Guide

Stop copying Python deps by hand. Build custom Ansible Execution Environments using Ansible Builder.

June 30, 2023 · updated August 26, 2025 · Pat · 6 min · 1128 words

Ansible Development: A Visual Studio Code-based Environment Setup

Setup an Ansible development environment in Visual Studio Code

June 29, 2023 · updated August 19, 2025 · Pat · 4 min · 690 words

Ansible Collections - A Primer

Install and use Ansible collections to extend your automation with reusable content.

March 11, 2022 · updated August 23, 2025 · Pat · 6 min · 1163 words