100 Days of Homelab - Day 1

Some loose plans:

I heard about the 100 Days of Homelab Challenge from Techno Tim and thought I'd jump on board with documenting what I tend to do anyway. I'll try to keep on top of it every night, but I'm writing this retroactively because I hadn't touched this site in years and had to remember how everything was set up. That's fun.

I have several projects I'm working on that will likely take the entirety of the 100 days without even thinking about it. Some projects I have planned and want to get on board:

  1. Creating a TrueNAS server. I currently run things like my Plex Server, Nextcloud, and more all on my main gaming rig. I'd like to move everything over to TrueNAS and incorporate it into some of the things I'm already running, like PXE boot and others.
  2. A backup of that TrueNAS server. It's not going to be anything fancy. Likely just going to seed the data onto a small Atom-based NAS and then do regular sync jobs to my parents house over the internet.
  3. Some experiments with ZFS and what it takes to get a Filesystem up to high speeds. I have a Brocade ICX 6610 as my core switch, so my TrueNAS and Proxmox Servers will hopefully sit on the 40G interfaces. That will be fun.
  4. Finish up my Raspberry Pi Kubernetes Rack. I've printed it and have K8S running on it, but it's far from automated. I want to write some Ansible Code that will PXE the machines as needed, and be able to get my cluster up and running easily.
  5. Testing out K8S on new Operating Systems. This is something I'm actively looking at for my job, but am will spend some time in my homelab as well. I'm particularly interested in NixOS and Fedora CoreOS since I've only played with them over short periods of time.
  6. Studying for and passing the Certified Kubernetes Administrator (CKA) exam.
  7. Creating an AirGradient to monitor my house. The parts are already ordered at the time of writing, so this will get fun quickly.
  8. Maybe some 3D printing learnings as well. I just ordered an Airbrush and my next big project is a life-size Slimer from Ghostbusters. I'd love to document everything that happens on that.

Day 1:

I'm starting things off with my TrueNAS project. I'm upgrading to a 2U Supermicro Chasis from a 1U Supermicro SYS-5018R-M that was my first homelab server. The new motherboard is an X10SRH-CLN4F. I wish I would have found out about this motherboard sooner, but it's all part of learning in homelab. It has 2 features that are ideal for what I'm doing:

  1. Supports PCIe Bifurcation. I know that in order to hit 10GbE or 40GbE, I won't hit that with just spinning HDDs, and I have some NVMe Drives on hand. However, the Supermicro Cards I have are 2xNVMe per card. This means it needs 8 PCIe Gen 3 lanes, with each drive taking 4 of those lanes. PCIe bifurcation allows this to happen.
  2. Built-in SAS controller. It's not the end-all, be-all, but it should be sufficient to run all my disks off of it without another RAID card or HBA inside the server.

Resetting Supermicro IPMI Passwords:

Supermicro has recently upped its security measures. The default password to login into IPMI is no longer admin/admin. To change it, I use a command line tool to set up a new user and give it proper permissions. Servethehome did a great of summarizing the procedure here. Essentially, we want to boot into some form of temporary operating system, like a bootable Linux OS or something like FreeDOS and run the program from there.

I already have a Linux Mint LiveUSB lying around, so I used that. I copied the IPMICFG ZIP file from another machine on my LAN to the Linux Mint live environment. I unzipped it, and then began the process for me I ran something like this:

# Become the super user
su -
# See what users are already on the IPMI interface
./ipmicfg -user list
# Add a new user "newuser" with the password "MyPassword"
./ipmicfg -user add 3 newuser MyPassword 2
# Make that new user (user 3) an admin (priv level 4)
./ipmicfg -user level 3 4

After this was done, I grabbed the DHCP IP address that was handed out on my opnSense router. I logged in with my new credentials and then moved on to the other project for that night.

Updating Supermicro IPMI Firmware

Once logged into the interface, it's quite easy to update the IPMI firmware. Just download the ZIP file for your correct motherboard, verify the SHASUM, and then upload the file. You upload the file under the Maintenance -> Firmware Update panel. In my case I was upgrading all the way from 1.01c to 3.93. The biggest feature I wanted was HTML5 remote desktop. Before this, it was a Java applet, which basically cannot run in any modern browser due to security concerns.

This went without a hitch, although it's worth noting that for a moment the iKVM/HTML5 panel read as “Undefined” and I couldn't access the page. After a quick search on the internet, I remembered that you need to flush your browser cache for it to properly load. In a Chrome-based browser, I like to do that with Ctrl+Shift+R, which is known as a “Hard Refresh”, or a refresh without any cache. I logged into the Linux Live USB again from my new remote window and called it quits for the day.