Recently I decided to try and throw together a one stop shop for managing frequently performed actions in my homelab. The goal was to enable me to faster create VMs, test software, rip them down, and rebuild. This is where I started with LabMan - HomeLab Manager. It is very alpha. Very very alpha. It consists of 2 components: a Rails application that handles background jobs and the web UI, and an agent written in Go that runs on the servers and checks them in while providing some general info such as installed packages.
HAProxy is my homelab loadbalancer of choice due to it’s versatility and general ease of configuration. Whether it’s HTTP or just plan TCP traffic I want to land within my lab, a few tweaks to an HAProxy config is all it takes. However, as I deploy more and more random services, which I want available from the internet, having to remote into my various HAProxy ingress servers becomes a pain. Also, since I like to have isolated HAProxy instances depending on what I’m doing, yet again having to remote into boxes to make changes becomes even more tiresome.
Odds are if you’ve landed here you’re aware of what Paperclip is and the purpose it servces within a Rails application. If not, it’s basically a gem that will handle file uploads. In my case I use it for resizing images, saving them somewhere (S3), then easily presenting them back to the user inside of a view. Note: This tutorial should work with any S3 compatible object storage API. Minio is just one of the more common ones.
Recently I migrated off of AWS Route53 to my own BIND servers for a few of my domains. I didn’t do this because I think I can do DNS better than the folks at Amazon. Instead, I’m looking to collect some detailed statistics about DNS usage and running my own DNS servers was the path of least resistance to reach that goal. Prepping the DNS servers My DNS setup is fairly typical, with a master and slave DNS server, each one located on different sides of the US.
From nothing to OpenShift in a bunch of steps!
Complete with vCenter 6.5 support
The issue When trying to consume a service hosted inside your network via it’s external IP address, which is also the outside address of your Cisco ASA, your connection will time out. Given the network diagram above we want to achieve the following: openshift-builder (10.8.3.253) needs to pull down code from git server gogs.stevem.io (126.96.36.199) – which according to our diagram has an internal IP of 10.8.1.254 Outside interface has 107.
Current network diagram You can view the current HomeLab diagram here: For those who have never seen this before: yes, I did run fiber out to my shed. I live in Minnesota and last winter I took advantage of the ridiculously cold winters we have and housed some servers out there. Major changes Here is a list of big changes made in the current revision: Dedicated pfSense firewall was replaced with virtual Cisco ASAv firewall Replacing the firewall means I’m connecting my cable modem to my Cisco 3750 core switch Also replaced the virtual pfSense firewall on my dedicated server in Atlanta with a pair of active/standby ASAv firewalls Upgraded host-to-storage networking to 10Gb which included adding 3x10Gb interfaces to my FreeNAS box Moved from NFS to iSCSI for VMware datastore share in order to achieve a network configuration where I can direct connect ESXi hosts to FreeNAS while still having a single common datastore (with working vmotions, DRS, etc) Added an HP DL380 G7 to the lab (2x Xeon L5630, 96GB RAM, 4x 300GB 10k drives) Started migrating hosted projects from Kubernetes to OpenShift Origin Wish list Of course these additions sparked some additions to my wish list:
The problem – ASDM Won’t launch properly When setting up a Cisco ASA Virtual Appliance (ASAv) in my lab I ran into issues getting ASDM to launch properly. When attempting to login I’d be prompted with the message “Unable to launch device manager from X.X.X.X” as seen in the screenshot below: The logs indicate it’s an error with how SSL is configured on the ASA: Application Logging Started at Thu Dec 15 15:51:05 CST 2016 ——————————————— Local Launcher Version = 1.