Management Ralph Lead image: Lead Image © Sebastian Duda, 123RF.com
Lead Image © Sebastian Duda, 123RF.com
 

Ralph, the open asset management tool

Accountant

As IT infrastructure grows more complex, IT asset management tools become essential. They track an IT asset's life cycle from the purchase order, through practical usage, to disposal or reuse. One promising newcomer is Ralph, the open source specialist tool. By Dr. Holger Reibold

Networks are dynamic entities that change quickly depending on the company and field of application. Often only individual systems are added, at other times whole departments are equipped with new systems, or critical systems are refurbished or replaced by others.

In complex environments, it is not enough to enter IT components' commissioning data in a static asset accounting tool and then simply forget about your legally compliant records. There is another problem: The tools used as the interface between business and IT are often not sufficiently granular to be able to give IT the right answers to different questions.

A simple example illustrates the problem: Desktop PCs in particular are often purchased and deployed in bulk. In asset accounting, they appear as a single item and are written off there as a lump sum. But network and IT administrators gain very little knowledge from this lump-sum information. Admins need to learn about the lifecycle of a single asset and be able to track it.

Benefits of Asset Management

Many companies are unaware of the benefits that professional asset management can offer IT departments, which also explains why this field is so little explored. Companies can benefit across all levels of decision making from reliable and up-to-date asset information. If decision makers and IT professionals have access to accurate inventory and requirement figures for IT hardware components, this simplifies planning and future procurement actions. Accurate inventory figures are also necessary to conclude or optimize maintenance, service, and leasing contracts.

These figures are important for IT security, because it is easier to define and meet appropriate security arrangements if you have precise documentation on how the IT components are used. In conjunction with human resources management, IT departments can ensure that sufficient IT resources are in stock.

As a further bonus, equipment planning is simplified in the future. The idea is for planning coordinators to have access to uniform, or at least standardized, product lines. As any IT administrator knows, homogeneous components are easier to manage and thus cost less.

Another advantage of IT asset management: Companies can optimize their IT spending and minimize risks. You can simplify administrative tasks through the use of IT asset classes (PCs, tablets, smartphones, printers, and so on). This is usually simpler to implement than configuration management, because, for example, you do not need to map complex dependencies in service production. In practice, asset and configuration management complement one another excellently. Together, they can help to maintain and optimize the IT infrastructure.

The excuse often put forward is that deploying a suitable solution would involve a considerable amount of expense and human effort, but you can safely ignore this. The free asset management tool, Ralph [1], is a very powerful and flexible environment capable of managing not only assets, but also licenses, support contracts, and even users. The asset entries in the database can be added manually or automatically. Ralph has agents for Linux and Windows that send the relevant information to the asset server.

Getting Started with Ralph

Getting started with Ralph is simple. The developers give you two options: an Ubuntu 14.04 package or a Docker image. The developers recommend the manual installation with the Ubuntu installation package. At he time of writing, Ralph 3.0 is in the final stages of the release process (as of the end of May).

Before installing, make sure that you have a new Ubuntu 14.04 installation with no other packages are installed. Then add the Ralph repository:

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61
$ sudo sh -c "echo 'deb https://dl.bintray.com/vi4m/ralph wheezy main' > /etc/apt/sources.list.d/vi4m_ralph.list"

To install, simply follow the usual approach:

$ sudo apt-get update
$ sudo apt-get install ralph-core redis-server mysql-server

Ralph can basically be installed as a full-fledged asset system or as an agent. Redis and the MySQL database server must be installed to run the asset server. The core component, ralph-core, is sufficient for running the agent. You then just need to point it to the two servers on your network.

Ralph uses a configuration file, for which you need to adjust the interaction with the MySQL database server. In particular, you need to enter the database-specific settings:

$ cat ~/.profile
export DATABASE_NAME=ralph
export DATABASE_USER=someuser
export DATABASE_PASSWORD=somepassword
export DATABASE_HOST=127.0.0.1
export PATH=/opt/ralph/ralph-core/bin/:$PATH

You have now laid the foundations for initializing Ralph. Various other actions are necessary for this purpose. First, edit the

/opt/ralph/ralph-core/lib/python3.4/site-packages/ralph/settings/prod.py

file. Set the value DEBUG = True. To create the necessary tables in the database, run the following command:

$ ralph migrate

Next, a reload is required:

$ ralph sitetree_resync_apps

The next initialization step adds a new user:

$ ralph createsuperuser

You have now successfully installed Ralph. Now launch Ralph with this command

$ ralph runserver 0.0.0.0:8000

Log in via the URL http://localhost: 8000 with the administrative account specified above (Figure 1).

Ralph's dashboard showing an overview of the most important asset data.
Figure 1: Ralph's dashboard showing an overview of the most important asset data.

The Docker installation is still at the experimental stage. To use Ralph in a Docker environment, you first need a Docker Compose environment. For an experimental Docker Compose configuration, see [2].

To create the Compose configuration, copy the docker compose.yml.tmpl file to docker compose.yml. Then run the build process and initialize the database:

$ docker-compose build
$ docker-compose run --rm web /root/init.sh

The next command feeds Ralph with sample data:

docker-compose run --rm web ralph demodata

Use the following command to run the Docker-based asset environment

docker-compose up -d

Access is then via the local web interface. To do this, launch the browser and access http://127.0.0.1. If you want to get a quick impression of Ralph, you can tinker with the online demo, which the developers deployed [3]. Use ralph as the login name and password.

First Steps with Ralph

After the installation, Ralph comes up with a clearly designed web interface through which you can manage your hardware and software assets, licenses and support contracts. The environment supports two types of asset: Devices and Parts. Devices can be, for example, blade servers, while Parts are the components of this server. The components can be moved from one device to another if necessary.

Assets can be created manually or automatically. To generate assets automatically, corresponding agents are available for Linux and Windows. Ralph manages the assets in the Data Center menu. Extensive forms are available (Figure 2) if you choose to create an asset manually. In the Basic Info field, specify the general data, such as the device type, the model, the inventory number, the location or the warehouse, the status (if necessary), a URL, the service name, the host name, and so on.

Creating and editing an asset using the web GUI in Ralph.
Figure 2: Creating and editing an asset using the web GUI in Ralph.

You can assign financial data, such as the purchase order number, invoice date and number, the price, the supplier, the budget information, and a user and/or owner to each asset. Go to the Additional Info to define the data center, the server room, the rack, the orientation and exact position, the slot number, and to link to the Ralph core devices. You can also define the serial number and a barcode in specially provided boxes for each device.

You also create components using the Data Center menu. The standard approach: First, create the devices, then the components, and then assign them to the devices. Extensive registration forms are available to create parts. In Basic Info, you once again enter the basic data such as the type, the model, the inventory number, the warehouse, the location, and status. If this is third-party property, you can also specify that here.

For each component, you can also specify a wealth of financial information, such as the price, the date of purchase, the order, and the supplier. You can assign the components to certain users and owners. Often, besides editing a single asset, you will need to apply certain actions to multiple entries, for example, to transfer certain components from one warehouse to another. This is also possible with Ralph. The developers refer to this feature as bulk editing. First search for the desired entries, select the entries in the results set, and then perform one of the actions. They are available in the Actions drop-down menu (Figure 3).

Various commands can be run against assets and components via the Actions menu.
Figure 3: Various commands can be run against assets and components via the Actions menu.

Ralph also records the actions applied to assets as a workflow log. There are almost no restrictions to moving components. Also the status of components can be adapted flexibly. Just use the Components drop-down menu that is available in each Part dialog.

Important Plugins

Out of the box, Ralph comes with various discovery plugins. Some are responsible for finding functions, while others can identify services or components. What they have in common is that they must be correctly configured for Ralph to use them. In particular, the user ID and password for the services to be detected must be entered in the plugin configuration. This configuration is done in the ~/.ralph/settings file. You will also want to ensure that this configuration is not accessible to unauthorized users. The most important standard plugins are the following:

The asset management environment can also communicate with various external services, for example, with OpenStack services. You can use the ralph openstack command to retrieve, for example, the billing information. Zabbix also integrates in the same way.

Scanning Devices

Starting with version 3.0, Ralph has a discovery mechanism that periodically scans networks and environments and determines hardware and software information. There are also 30 plugins available that discover hundreds of common hardware components. Because Ralph is modular, you can program your own detection modules. Automatic detection is of course more convenient than creating inventories manually.

For scanning, Ralph relies on the rqworker module. It is executed on the console:

$ ralph rqworker [Scan-Plug-in]

It is much easier to run a scan using the GUI. Go to the Scan tab and specify the IP address or the address range. The scan dialog lets you select the plugins. By default, Ralph uses different pre-scan plugins, for example, to try to identify existing SNMP and HTTP services. To use all plugins, check the All box, and click on Scan to initiate the scan operation.

Managing licenses and contracts is also easy: For this purpose there are two menus: Licenses and Support. The forms are similar to those for creating assets.

A special Windows agent named Don Pedro [4] is available for discovering Windows-based systems. It only requires an installed .NET 2.0 environment and can be run on virtual machines. Of course, the agent must be configured to interact with the Ralph system. To do this, edit the DonPedro.exe.config file and type the Ralph server's URL.

Configuration and Extension

Once the basic Ralph system is set up, you can move on to the next step, which is adapting and extending the environment. On Ralph's side, no additional configuration steps are typically required after commissioning, but you can connect to a directory server and a cloud environment.

Several aspects of the environment can be adapted in the Settings menu. Ralph is a Django-based project and stores its default configuration in the settings.py file, which is usually located in the /etc/ralph/settings directory. If you want to create your own configuration after an initial installation, run the following command to do this:

$ ralph makeconf

This command creates a settings file with default values. However, Ralph does not overwrite the existing configuration. If you want to do this, you need to run makeconf with the -force option. Using the makeconf -global option lets you add your configuration. Note that the configuration file contains passwords and other sensitive information. By default, makeconf, therefore, ensures that the configuration directory and configuration files are only accessible to the current user who is running makeconf.

Ralph's special features in version 3 include various tracking functions. Admins can track assets and components – both automatically and manually. Changes to licenses and contracts can also be tracked. If the required fields do not exist in a form, you can create custom fields that let users enter company-specific information. The DC Virtualization menu helps you map server cabinets and racks, assignments, and connections (Figure 4).

Ralph successfully visualizes rack components.
Figure 4: Ralph successfully visualizes rack components.

And, if you want to share the data stored in the asset management system with a third party, Ralph can generate PDF documents from its database or parts of the database. You can also use editable templates.

No Automatic Versioning

Ralph did reveal some weaknesses, for which no solution is likely to be available in the foreseeable future. Most administrators will probably be able to live with the requirement to run Ralph on a Ubuntu 14.04 system; you can set one up quickly and simply in a virtual environment.

The developers of Ralph worked intensively on version 3 in the past few months and added some interesting innovations in this version. In terms of its feature set, the asset management environment is on the right track. As you can see from the current roadmap, some interesting features have been announced; their implementation is scheduled for completion by the final release of version 3.

What's missing so far is the ability to evaluate a Ralph system with minimal overhead. The developers are working on a deployment system with DHCP and PXE support. Thus far, the Ralph interface only supports the English language. And, the export feature only generates English summaries. But most admins will be happy with this. The real drawback thus far, however, is that clients capable of detecting and indexing hardware components and MAC addresses are missing. They would save administrators the worry of installing an inventory agent on each system. Such a client is in development, but it is still unclear when it will be available.

Ralph is also incapable of automatically detecting Mac OS X systems. Even if these devices only play a subordinate role in many companies, it is annoying if you need to manually manage some sections. In addition to purely technological limitations, Ralph also loses points because of other criteria. The website does not give you a contact address for the developers. Unfortunately, they also do not offer commercial support that interested companies could rely on. And, there is no active community to turn to for advice. Until these circumstances change, many companies will probably not even consider using Ralph.

Conclusions

Ralph v3, the free asset management system, is a very promising newcomer that does a good job of typical inventory tasks in the enterprise. In terms of support and agents, the developers still need to catch up to make the environment more interesting for corporations.