Terraform + Ansible: Upgrading my Homelab.

My home infra is a mix of random mish-mash at this point.

InstanceSpecsAvailablity
Digitalocean Droplet1vCPU, 1 GB RAM, 20GB SSD99.99% uptime, 2 Gbps
Ubuntu VM on Unraid Host5vCPU, 20 GB RAM, ~4 TB NAS tiered StorageUptime Based on ISP (~99.5)
Bare Metal Arch Daily Driver20vCPU, 20 GB RAM, 16 TB HDD storageUptime Based on Usage Patterns(~70%)

The more powerful the server, the less available it is. Currently my most critical servers are on the droplet. With less important Items on the Unraid server in Docker containers.

The Arch Daily driver is currently not being used a server. It does double duty as a gaming rig(hence the insane specs). I wanted to make it a server when I am not gaming on it. But as managing it would be a pain without some automated mechanism, I have hesitated to setup any apps on it.

A while ago, I saw this blog post on using nomad by my colleague Jigar in Browserstack. When I chose Unraid as my Server platform, I had dismissed kubernetes as it had a steep learning curve. Nomad, seems to be a fantastic, low cost of entry to the clustering game.

Approach Outline

As I have some Cloud VMs and some Local VMs, I am planning on using both Terraform and ansible, like Jigar to setup the system. At the core, I will be using Terraform to provision the VMs and then, to setup the VMs, I will be using Ansible.

This page will be a sort of index for the coming posts.

Progress

  1. Setting up Terraform to provision a DigitalOcean Droplet
  2. Automatic creation of ansible inventory from Terraform output
  3. Configuring Ansible to run commands on the provisioned resources
  4. Ansible: Automating server initialization tasks

Related Posts

4 thoughts on “Terraform + Ansible: Upgrading my Homelab.

Leave a Reply

%d bloggers like this: