labman

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.

At a glance features:

  • Create new VMs
  • IPAM
  • Execute workflows against hosts
  • Host monitoring
  • Host firewall management
  • DNS management
  • Network device configuration
  • Network visualization
  • Alerting
  • Service monitoring

Picture Walkthrough

Hosts View

Shows hosts in the lab, a glimpse of their health, IP, and when the labman agent last checked in (WIP).

labman

Single Host View - Dashboard

This view allows you to see a dashboard with some metrics about a given host (CPU, RAM, Network, etc)

labman

Single Host View - Workflow

Shows information about workflows that have run against this host (more on that later).

labman

Single Host View - Firewall

Allows you to visually manipulate firewall rules which apply to this host.

labman

labman

Single Host View - Alarms

Shows alarms running against this host, their current status, and exit codes from alarm runs (0=ok, 1=warning, 2=critical)

Alarm notifications are sent through slack.

labman

labman

Single Host View - Console

Access a VMware Console view to interact with VMs having network issues, etc. HTML5

labman

Single Host View - Configuration

Enable/disable alarms, set SSH access information, and even reprovision or deprovision the VM.

labman

Create a new VM

Wizard walks through VM creation and kicks off a provisioning workflow (more info later).

labman

labman

labman

labman

Network Devices

Show dashboard of network devices

labman

Network Devices - Interfaces

Show interfaces, connections, and even update the configuration of an interface (Cisco devices supported right now)

labman

labman

Network Devices - Visualization

Show connections between physical devices

labman

IPAM

Show subnets in parent-child view, VLANs, and utilization

labman

labman

IPAM - Subnet View

Show subnet details, utilization, hosts, DHCP scopes, etc. Subnets are automatically swept to detect new hosts. IP, Host, DNS, and Network Device objects are displayed to associated IPs.

labman

labman

labman

DNS - Server View

Show all zones on a DNS server

labman

DNS - Zone View

Show records for a DNS zone, create new records, delete stale records.

labman

labman

Services

List services and their availability

labman

Services - Parent Service with Children

Show a service, and subservices, with their health status

labman

labman

Workflows

Shows workflows that have been created, as well as lists workflows that have been run. This includes host provisioning.

labman

labman

Workflows - Create Workflow

Create a workflow by defining steps to perform against a host.

labman

Workflow - Run Example

Install Consul workflow run example

labman

Workflow - Provision Host

Example host provisioning workflow run. Creates DHCP entry, DNS record, PXE boots, configures, validates connectivity.

labman

labman

Workflow - Deprovision Host

Destroys VM, removes DHCP static record, removes DNS record.

labman

Alarms

Shows all alarms and their current state. Alarm notifications are sent through slack.

labman

Alarms - Single alarm view

Shows a single alarm, current state, and history

labman