Glovebox Server Management

February 19th, 2010

Glovebox Server Management

Glovebox is a Perl and ExtJS based server management software that allows for adding any type of machine via perl modules.  There are three stock modules which can scan IBM Bladecenters and IBM RSA II cards via SNMP and Xen servers via libvirt.  The web based GUI was created using ExtJS and allows you to search and list servers, view eventlog data from those servers and even update Glovebox’s configuration.

Glovebox is released under a GPL license.

Links

Prerequisites

Installation is very simple, however there are some prerequisites before you can get it up and running:

  • A Unix like operating system (Linux, FreeBSD, OSX, etc), I prefer RHEL v5 or Centos v5.
  • A Web server (Apache, Lighttpd)
  • Perl, and the following Perl modules: Sys::Virt, Date::Manip, Digest::MD5, JSON::XS, Net::SNMP, DBI (v1.52+), Config::Vars & DBD::MySQL
  • MySQL (v5+ for all features)
  • ExtJS

Installation

  • Download the tar ball and unpack it where ever you’d like for the install to live.
  • You’ll need to unpack the ExtJS package under the following directory: “glovebox/www/extjs”.
  • Assuming you have a working MySQL installation, you’ll need to create the a database, the default name used is “systems”, however you may call it whatever you want.
  • Import the database schema located under “glovebox/schema”.
  • Setup the database connection information in “glovebox/conf/GloveboxConfig.pm.dist”, you’ll want to set db_hostname, database, db_user & db_password.  You’ll need to save the file as GloveboxConfig.pm.
  • Assuming you have a working Apache installation, you’ll need to either add the Apache configuration located in “glovebox/conf” to httpd.conf or drop that file under conf.d.
  • Edit the Apache configuration and point the directories to where you unpacked Glovebox in the first installation step.  Restart Apache.
  • Optional:  If you’d like to have Glovebox update automatically, add a cron entry to run the Perl script under “glovebox/bin”.  I suggest running it hourly unless you change your hardware more often.
  • A note about Perl module & MySQL versions: I built this tool on MySQL 5 and RHEL 5, I recently started testing on older RHEL versions and ran into issues with perl-DBI not supporting some of the methods I was attempting to use.  I’ve updated the DBI version requirement above to be greater than v1.52 which ships with RHEL5.  I also had issues with MySQL 4 and its lack of support for Triggers which I use extensively in Glovebox.

Setup

  • Add your containers: “Tools > Add New Container”.
  • Enabling and Disabling Container Types: “Settings > Interface Plugins” and either check or uncheck the “Enabled” column.
  • You’ll need to setup your devices to allow the host that Glovebox runs on to connect via SNMP.  It only needs GET capabilities.
  • You’ll also need to setup remote management of your libvirt based virtual machines by following these instructions.

Troubleshooting

If you have issues after following the instructions above, you should check your apache error logs to diagnose the issue.  You can also run the the command line update script which will dump errors to stderr.

Community

There are two lists on SourceForge for glovebox, glovebox-users & glovebox-developers.  Emailing glovebox-users with issues is the best way to get help from me.  If you’d like to write more plugins for Glovebox, glovebox-developers is the best place to start.

Bugs

There are several known bugs in Glovebox.

More Information / Background

Credits

  • Glovebox was written by Andrew Rankin.  I can be reached at andrew [at] eiknet.com, however do not directly contact me with support questions; please use the mailing lists above.
  • Various icons are used under the Creative Commons Attribution 2.5 License, and were created by Mark James.  You can visit his website at famfamfam.com.
  • The JavaScript within this project was built upon the ExtJS library which is released under the GPL v3 License.  You can learn more about ExtJS at extjs.com.
Comments are closed.