OpenLMI


OpenLMI provides a common management infrastructure for Linux systems. Available operations include configuration of various operating system parameters and services, hardware components configuration, and monitoring of system resources. Services provided by OpenLMI can be accessed both locally and remotely, using multiple programming languages and standardized APIs.
Project's source code is distributed under the GNU Lesser General Public License and Simplified BSD License.

Overview

OpenLMI distinguishes agents, controllers and client applications:
  • OpenLMI agents perform the actual operations; they are installed and run on managed Linux systems.
  • OpenLMI controllers manage the OpenLMI agents.
  • Client applications talk to the OpenLMI controllers through well-defined interfaces and language bindings, which are based on open industry standards for the management of remote systems.
Thus, instead of delivering a complete management solution, OpenLMI provides low-level functions and APIs that can be used by, or integrated into, various management platforms, applications or configuration scripts.
OpenLMI extends the already existing Linux infrastructure by providing management agents which also perform system configuration tasks, in addition to monitoring and reporting functions. By exporting those operations through standard-based interfaces, and by providing agents performing the actual operations, OpenLMI creates a management framework that various applications can use – both for system configuration, and for monitoring resources and performance. Usage targets for OpenLMI include bare-metal production servers, on which it can perform initial configurations through a set of predefined "recipes".
, implemented agents primarily perform operations related to storage, networking and local user accounts. Plans exist to expand the variety of implemented agents, aiming at providing complete coverage of Linux management and configuration tasks.
The OpenLMI's source code is licensed under the GNU Lesser General Public License and Simplified BSD License.

Architecture

Based on their placement and usage role, OpenLMI architecture contains two major components: management modules, and management tools. A set of management modules is installed and running on each of the managed systems, performing the configuration and monitoring tasks. Management tools are running on a management system, performing aggregation of the collected monitoring data, and dispatching the requests to management modules. The agents are talking to the outside world through an OpenLMI Object Broker, which is also known as a controller. This object request broker provides a standard-based communications protocol, handles the security and access control, and provides deployment methods for the agents.
Each agent implements an object model that specifies the attributes, methods, and associations. Through the controller, this object model is interoperably made available to client applications. While it is possible to build all required logic into an agent, the general approach is to use and invoke existing Linux tools; for example, OpenLMI's network agent uses the NetworkManager, and the storage agent uses the Blivet storage library.
The actual communication protocol is using XML data transferred over HTTPS. While it is possible to use XML directly, a set of client libraries provides native interfaces for a number of programming languages; client libraries supplied by OpenLMI provide support for C, C++, Python and Java. These interfaces are implemented as language bindings to the operations in underlying system agents, with all supplied libraries providing the same feature sets. Support for command-line interface utilities is also provided.
Internally, OpenLMI is based on the Distributed Management Task Force Common Information Model, with internal functions exposed in form of CIM namespaces. A few open-source CIM clients are available, as an additional way for using data and operations exported through OpenLMI.

Agents

OpenLMI agents, also called providers, do the actual work. OpenLMI distribution includes a set of standard management agents, and also includes a set of development resources required for developing new agents. Standard OpenLMI agents, as of 2014, are the following:
; Storage
; Networking
; System Services
; User Accounts
; Software
; Hardware
; Logging
; Performance CoPilot

Comparison

OpenLMI is different from other configuration management systems like Puppet or Bcfg2, in a way that OpenLMI does not require details of the system configuration to be already known in order for appropriate configuration recipes to be created. This nature of the OpenLMI may provide advantages in case initial configuration is to be performed on a broader variety of systems having different hardware configurations.

Reception

Red Hat Enterprise Linux 7.0 includes support for OpenLMI since the first beta release of this Linux distribution, which was made available on December 11, 2013. Fedora 20, released on December 17, 2013, also includes support for OpenLMI.