DEV Community

Kevin Burns
Kevin Burns

Posted on • Originally published at burnskp.com on

Project Homelab: Configuring proxmox with Ansible

I received 3 Minisforum MS-01 boxes earlier this week. I’ve set them up identically with the following configuration:

  • 10GE SFP+ setup in a mesh using .5m DAC cables
  • 2.5GE internal network
  • 2.5GE external network
  • 2TB Samsung 990 Pro drive for ceph storage (PCIe 4.0 x 4)
  • 1TB Samsung 990 Evo for Proxmox storage (PCIe 3.0 x 4)
  • 96GB Ram ( 2 x Crucial 48GB DDR5-5600 CT48G56C46S5) Running at 4800MHz

I’m not a fan of configuring my devices via GUI and I don’t like the idea of having to go through the setup motions again if I reinstall the system. Instead I’ve written some Ansible roles to handle the configuration of my cluster. I’ve added them to my ansible-homelab repo.

While there’s a lot of roles for Proxmox on the Ansible Galaxy, none of them stood out to me as ‘this is the one to use’. I wrote my own that is targeted for this specific setup. It will configure the following:

  • Disable the Proxmox nag screen in the web-ui
  • Configure the non-subscription apt repos
  • Configure unattended-upgrades to install upgrades and reboot the server once a week. The server reboot times are staggered so each one will reboot an hour apart.
  • Setup the network
  • Join the three nodes to a single cluster
  • Install and configure Ceph with 2 pools (kubernetes and pve) and 1 CephFS (iso)

I haven’t written any molecule testing for this yet. It’s a little more involved due to needing to expose some virtual disks and either install or have a preinstalled image created. I believe I’ll eventually implement this in Vagrant + QEMU.

Now that I have the basics configured I’ll need to setup email notifications, Let’s Encrypt TLS certs, and Tailscale. I’ll be using Amazon SES and Route53 for these services. My next task is to write the Terraform code to configure those.

Top comments (0)