Homelab

French content below
Yes I’m still alive. Things have changed about almost everything in my life, but that’s not the point of that post. Let’s talk a bit about…hardware.
I’ve opened my purse to buy some hardware. I could have tried to virtualize everything on my (once) proud AMD Phenom II X6 1055T along with its 24GB RAM, but it may feel a bit too much constrained and slow for what I envision.
So I’ve bought 4 refurb Lenovo ThinkCentre M715Q Tiny (can’t tell yet if it’s gen1 or gen2 as it’s still transiting as I type) sporting an AM4 socket with a 35W AMD A10-8770E cpu, 1×4GB DDR4 RAM, and 128GB NVMe SSD for 55€ each shipping included, that is 220€ total. I also bought 2 RAM kits, 2×8GB DDR4-2400 so-dimm to pimp things up a bit (4 and 16GB dimm prices aren’t the sweet spot these days). So I will end up with 2 M715Q with 2×4GB RAM, and 2 with 2×8GB. 60€ shipping included for these. Grand total, 280€. An old & small & unsupported 8+1 1gbps ports firewall/router/switch and a couple cables were sleeping in a drawer, so we’re covered here (no, this won't be directly connected to the internet).
For sure, these are far from high-end hardware. but 4 machines, 16 (quite slow, ok) cores, 48GB RAM looks more than enough to me to be able to run quite a lot of stuff. Storage is on the low side, but enough for experimentations. Easily upgradable for (real) cheap if needed. So, let's run sweet things. OK, but which sweet things ?
Why not a (little) GitLab/GitHub clone ? Git repo, some CI/CD, code coverage, you name it. Gitea looks like a good candidate. (This is a first idea out of the blue. Others may be a reason to try different technologies later on)
Next question is, how to run it ?

  • Pure Docker ? Not « complicated » enough, and would not take advantage of the four machines. Docker swarm is a dying technology (if not already dead), so it's a no go.
  • How about a Proxmox Virtual Environment Cluster ? In a VM ? As hardware isn’t the fastest on earth, being closer to the bare metal is welcome, so a container looks like the solution. Proxmox Virtual Environment supports LXC. I’m already used to PVE, so that should be quite easy. But I won’t learn much then…hmmmmmmm.
  • Kubernetes ? Hype, fluff, heavy, complicated. I’ve worked a bit in K8S environment, but never deployed it by myself. Why not.
  • Nomad ? From HashiCorp. You know, the Terraform, Packer, Vault, Consul, and also Vagrant (etc) guys. (No, this post is not sponsored, I have no shares, and I’m not seeking a new job there). Despite their obvious success, I’ve never really worked nor deployed their solutions. I think we have a winner for that project.

Now, How will we deploy the four machines ? I have absolutely no desire to install 4 OSes by hand.

  • MAAS from Canonical (you know, the Ubuntu guys) will definitely do the trick. But I already know this tool. Next.
  • Tinkerbell. Can be deployed with Terraform and Vagrant. Will need to dive deeper into documentation, but it looks like a potential candidate. I may clean the dust on my old Zotac zbox nano AD10 (french only, sorry about that) to make it run Tinkerbell instead of running it on my Phenom II. Agreed, AMD E-350 is a bit slow, but sucks less power than my desktop with its Radeon RX 560 and a couple SATA SSD.
  • And it looks like that’s about it (even though I haven’t dig though the whole internet). A couple others smells too much proprietary/behind registration to my taste. So we’ll go with Tinkerbell to deploy the cluster.

What about configuration management ?

  • Ansible ? I’ve used ansible quite a bit, and like it a lot. It’s a bit verbose, but works fine. Running it along AWX would be a first to me. I must admit I’m (very) tempted by this idea. (Please don't boo me, available hours for geeky things are sparse, I can't afford weeks on learning about a single software)
  • CFEngine. (Too much) castrated community version. Next.
  • Progress Chef. Hmmmm. Community version of Infra Server proposes packages for only already EOL’ed or soon to be OSes. Next.
  • Puppet is well known in the automation domain. But it’s a beast in itself to learn. But a nice skill to have. Perforce is pushing its enterprise version, hiding a bit the « Open Source Puppet » as they name it behind registration, even though GitHub repo is available. Grmbl. Well. maybe.
  • Salt is another player in the automation field. Just discovered it’s been acquired by VMware, and thus Broadcom. sigh. Moreover, a company I worked for a couple years ago got rid of Salt to embrace Ansible. These are two points not to forget. Salt looks sexy anyway. OK, it may be used instead of Ansible+AWX. We'll see. (Yes, I'm undecided at that point)

I’ll try to make a post with every important step of the experiments, so knowledge is shared. Geeky things may even end up in a forge so it can be reused and enhanced by you, reader.

J’ai déjà mis bien trop longtemps à fouiller le web et rédiger la version en anglais, il faudra vous en contenter, désolé…

Haut de page