HomeLab with ChatOps, Microservices and IaaS

Did you ever wanted a Private hosted Lab that you can access anywhere? And did you ever wish you can spinup your lab instances on-demand? Ever wished you had a assistant at home always available to poweron/poweroff that Virtualization Host?

Well, you have come to right place, I will guide you in a series of blog posts on how to acheive this using a Slack Bot, Chef, Docker and a VMWare Host

Imagine a sample scenario, you are in an airport and your flight is delayed. And you are itching to try out a new PoC or Develop/Test a new automation script that you were working on. You do not want to stress out your laptop by running local VM’s and quickly running out of your battery. So what do we do?

HOME LAB!!, yes you can spinup your favourite customized lab environment from a Slack and access it over a WebBrowser.

So, here your will say something like lab up into a slack channel or DM to a BOT which will run automation scripts to issue a WAKE ON LAN command to your sleeping ESXi/HYPER-V Host.

Following is the component setup I have for this Lab.

I have a always-on Raspberry Pi, which is running a Docker Container that is serving as a Slack Bot and a Chef Client.

On the other side of the house, I have plugged in a UDOO x86 hacker board running few Docker Containers to serve my WebFront and Other Microservices that I use.

I also have a INTEL Next Unit Computing kit NUC6I5SYH Serving as my ESXi 6.5 host.

I dont incurr much running costs on this setup as I power down my Docker and ESX Hosts when I dont need them, and power them ON via Slack as I show you in this post.

Let’s see what is my Lab Status from Slack

alt text

OK! My Bot is stating that my ESX HOST is Down

Let me poweron my ESX HOST

alt text

OK! Now check my lab status

alt text

Hmm, this time the bot listed all my VM’s hosted on my ESX Host

OK, lets poweron vm WinX

alt text

So, I guess you got the glimpse on what this ChatOps look like and hope you are as excited as I am.

Stay Tuned for my next serving :)