Streamline software inventory management with OCSNG


Author: Murthy Raju

I manage about 200 computers running various flavors of Linux and Microsoft Windows in my company. We built a home-grown PHP-based inventory application to store our hardware and software inventory information. The software relied on our updating information manually, whenever there was any change, so as you might expect, the data was always outdated. We replaced our old system with Open Computer and Software Inventory Next Generation, released under the GNU GPL. OCSNG suited our needs immensely. We could see the benefits almost immediately, as it automated the collection and updating of the data, which is the most crucial part of inventory management.

OCS Inventory NG maintains and displays hardware information such as processor, motherboard, video card, PCI cards, memory, as well as software information such as OS type and version, patches installed, and application software installed. It supports all flavors of Linux and Windows, as well as Mac OS X, Solaris, and AIX.

I downloaded and installed OCS Inventory NG on one of our Linux servers running Fedora Core 4; the server software will also run under Windows NT. The software comes in three parts: a communication server for interaction between clients and the server, an administration server for the Web interface, and an agent to be installed on each computer to be inventoried.

The communication server is written in Perl. I had to download some additional modules from Comprehensive Perl Archive Network (CPAN). The manual has detailed instructions on the requirements and installation steps, so the installation was simple.

The administration server is written in PHP, and requires PHP, Apache, and MySQL on the server. Its installation is also straightforward.

The OCS Inventory NG client software for Linux is a Perl application. It requires a few Perl modules, namely XML-Simple, Compress-Zlib, and Net-IP. On Windows, you can choose between deployment using logon scripts or Active Directory, or full installation by running a setup file.

The agent installed on each of the client systems transfers its inventory information to the communications server over HTTP. The server stores the information in the database and makes it accessible through administration server’s Web interface.

Apart from the hardware and software information, OCS Inventory NG can store additional administrative information like purchase date, location, authorized user, and details related to the support contracts etc., as a part of the inventory database. The administration server supports searching based on any hardware or software parameter.

Communication server and administration server have features to deploy updates to the agents running on the clients. In the case of Windows clients, it is possible to install the agent itself by deploying it using active directory as mentioned earlier.

Windows agents have the ability to query the registry and report the values of any specific registry parameters. This features comes in handy to keep track of serial numbers of the software in use etc.

An interesting feature of OCS Inventory NG is its ability to take care of the inventory of non-networked computers as well. There can always be some computers that are either non-networked or are not connected to the network where the OCS Inventory NG is running. Such clients are considered as offline clients, and you can run the agent on them in offline mode and transfer the data to the administration server.

The presence of the agent running on all the client computers in the network is normally a prerequisite for any effective automated inventory software. OCS Inventory NG can also discover the presence of the computers that are not inventoried yet. It does an intelligent analysis using tools such as nmap to find out if such discovered hosts are devices like printers or routers, or computers that have not yet been inventoried. OCS Inventory NG delegates the work of network scanning to agents, which report the results to the communication server. This feature helps in balancing the overhead of such discovery, especially in big networks spanning several subnets. OCS Inventory NG has a robust election mechanism to decide which client is best suited to help the server in this process of discovery.

OCS Inventory NG also has the ability to discover inventoried computers that have been reinstalled. It also gives administrators the ability to identify and reconcile redundant entries that might have occurred due to reinstallation of the operating system or other circumstances.

OCS Inventory NG has all the features that I look for in an inventory management software. Since it uses open standards, such as HTTP, for communication between its various components, it is easy for the developers of other systems that require inventory data as a key input to integrate with it. GLPI, an GPLed help desk management system, integrates with OCS Inventory NG.


  • Enterprise Applications