License handling best practices

This is a follow up to my last post: Sysadmin: Where to Start? on a more specific point.

As I stated I was recently hired at a company to lead software development and as a smaller portion of that role handle the IT side of my company. Currently software is rather randomly situated around machines as the majority of it was just all purchased as installed software on our Dell machines.

Beyond that the only type of cataloging of it includes an excel file with machine service tags / windows keys and maybe office keys. Install disks / licensing information may have a users first name written on it but that's the most on the physical disks.

What type of better solutions for managing this are there available? Obviously the most basic start would be to truly ID the machines, disks and users to atleast have a much stronger tracking catalog which I will most likely write up as a small intranet web app.

One of things I'd really like to have available to me soon would be a ready made system image of the work stations that I can roll it out quickly instead of having to manually reinstall everything if a machine becomes corrupted however I have no idea how I would deal with licensing since if the keys were embedded into the image every machine would share the same key and fail activation I assume?

Currently the main software I have available to me is Windows Server 2003 Standard setup with Active Directory / Domain account usage.


Solution 1:

For license management 'automation' you can use OCS Inventory alongside GLPI.

OCS Inventory runs agents in each machine and retrieves software information (among other information) and provides it to GLPI, where you can insert the related licenses.

So with these two tools you get:

  • Which software are really installed in your computer base, and
  • A way to manage the software licenses (number of them, keys, expiration dates)

You can see how it works (more or less) in the demo page (Inventory -> Software).

Of course, this is an added value to install these two tools, which offer much more than license management.

Solution 2:

One thing I realized is that there are two different components of license management:

  1. Proof of ownership: You need to be know how many licenses you're using, and you need to be able to prove you own that many licenses. Not too few (of course), but also not too many because that's wasted money.
  2. Managing the media (or install files) and licensing info. for using the software.

Whatever you do to manage software has to meet these two different needs.

For proof of ownership, we err on the side of caution and try to save as much paperwork as possible for everything we buy:

  • We file away all CDs/DVDs and license key stickers for anything we buy.
  • For stuff that's only downloaded, we burn a copy and file that.
  • For licenses, we print out whatever license docs we got, and we usually buy at least one media kit with every license purchase, so we have a disk to go with those.
  • We have a simple database that shows everything we've bought. We try to keep it up-do-date for what's installed, but we don't worry too much about that, because...
  • We set up all PCs from a standard image so for our core software, we just have to be sure we have as many licenses as we have PCs. For the oddball programs that we have 1 or just a few copies/licenses, we do keep track of where it's installed.
  • We use a couple simple inventory tools to check what's installed to be sure we aren't missing any licenses.

Completely independent of all the disks and files for "proof of ownership" we maintain a software library that's only accessible to admins that has install files for everything we might want to install. There are install files for all the big packages, sometimes multiple versions, and for the smaller ones. Sometimes when we buy a one-off package, we'll just open the box, register the software and install it from the original disks, but if we ever need to re-install it, we'll copy whatever we need to the software library.

A few other thoughts:

  • For any software that's installed on more than a couple of machines, you need to buy it as licenses so that it's easier to manage.
  • CALs are included in our software inventory and most are treated the same way as core software: we always have enough for the current version of whatever we're running. We upgrade slowly, so we never got SA and when we went from 2003 to 2008, we had to buy new CALs.