Welcome to our blog series on building a homelab with Proxmox, Cloud-init, Terraform, and Ansible! In this series, I’ll guide you through the process of setting up a fully automated homelab using open-source tools that are easy o use and are highly customizable.
Before we dive into the details, it’s assumed that you are familiar what a homelab is, if you don’t, I recommend you checkout the following resources:
Additionally, it’s important to note that this series won’t cover the installation and configuration of Proxmox itself. Proxmox is a powerful and versatile hypervisor that allows you to run multiple virtual machines or containers on a single physical host. It’s widely used in both home and enterprise settings (not as much as VMWare), and offers a wide range of features and capabilities. However, setting up Proxmox can be a complex process that requires a solid understanding of virtualization, networking, and system administration.
Assuming you have Proxmox up and running, the rest of this series will focus on using Cloud-init, Terraform, and Ansible to create a base image/template, deploy virtual machines, and perform software-related tasks such as installing dependencies and configuring software to run on each virtual machine. By automating these tasks, you’ll be able to quickly and easily set up a homelab that meets your specific needs, without having to manually configure each virtual machine. An added benefit is we can easily recreate the environment if something were to break. So, let’s get started!
Part 1: Configuring a base image with Cloud-Init