OpenLMI
   HOME

TheInfoList



OR:

OpenLMI (abbreviated from Open Linux Management Infrastructure) provides a common management infrastructure for
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
systems. Available operations include configuration of various
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
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 language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s and standardized
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
s. Project's source code is distributed under the
GNU Lesser General Public License The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
(LGPL) and
Simplified BSD License BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD licen ...
.


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 binding In programming and software design, a binding is an application programming interface (API) that provides glue code specifically made to allow a programming language to use a foreign library or operating system service (one that is not native to ...
s, 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 A framework is a generic term commonly referring to an essential supporting structure which other things are built on top of. Framework may refer to: Computing * Application framework, used to implement the structure of an application for an op ...
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 (
LGPL The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
) and Simplified BSD License (also known as the
FreeBSD License BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD licens ...
).


Architecture

Based on their placement and usage role, OpenLMI architecture contains two major components: ''management modules'' (also known as ''agents''), 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 (information), methods (functions), and associations (links to other objects). 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 NetworkManager is a daemon that sits on top of libudev and other Linux kernel interfaces (and a couple of other daemons) and provides a high-level interface for the configuration of the network interfaces. Rationale NetworkManager is a software ...
, and the storage agent uses the Blivet storage library. The actual communication protocol is using
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
data transferred over
HTTPS Hypertext Transfer Protocol Secure (HTTPS) is an extension of the Hypertext Transfer Protocol (HTTP). It uses encryption for secure communication over a computer network, and is widely used on the Internet. In HTTPS, the communication protoc ...
. While it is possible to use XML directly, a set of client
libraries A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
provides native interfaces for a number of programming languages; client libraries supplied by OpenLMI provide support for C, C++,
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (prog ...
and
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
. 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 A command-line interface (CLI) is a means of interacting with software via command (computing), commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user ...
(CLI) utilities is also provided. Internally, OpenLMI is based on the
Distributed Management Task Force Distributed Management Task Force (DMTF) is a 501(c)(6) nonprofit industry standards organization that creates open manageability standards spanning diverse emerging and traditional IT infrastructures including cloud, virtualization, network, s ...
(DMTF) Common Information Model (CIM), with internal functions exposed in form of CIM
namespace In computing, a namespace is a set of signs (''names'') that are used to identify and refer to objects of various kinds. A namespace ensures that all of a given set of objects have unique names so that they can be easily identified. Namespaces ...
s. 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, , are the following: ; Storage : ''Storage Agent'' configures and manages local and remote storage. The ability to enumerate (discover) and configure local storage devices is built-in. As of December 2013, remote storage devices can be configured, with no support for their discovery or provisioning. Thus, remote storage must be already provisioned using other approaches, and the resulting logical unit number (LUN) made available to this agent. Support for provisioning of remote storage is planned for future releases. ; Networking : ''Networking Agent'' configures and manages
network interface controller A network interface controller (NIC, also known as a network interface card, network adapter, LAN adapter and physical network interface) is a computer hardware component that connects a computer to a computer network. Early network interface ...
s (NICs) and Linux networking configuration in general. It has the ability to enumerate (discover) and configure devices, including configuration of IPv4 and IPv6 addresses, default gateways, DNS servers, management of static routes, and configuration of interfaces bridging and bonding. ; System Services : ''System Services Agent'' performs the management operations associated with the system services and underlying
background processes A background process is a computer process that runs ''behind the scenes'' (i.e., in the background) and without user intervention. Typical tasks for these processes include logging, system monitoring, scheduling, and user notification. On a Windo ...
, by exposing the ability for services to be, for example, started, stopped or restarted through the standard OpenLMI interface. This agent also has the ability to enumerate (discover) available system services, using the
systemd systemd is a software suite that provides an array of system components for Linux operating systems. The main aim is to unify service configuration and behavior across Linux distributions. Its primary component is a "system and service manage ...
's
D-Bus D-Bus (short for "Desktop Bus") is a message-oriented middleware mechanism that allows communication between multiple Process (computing), processes running concurrently on the same machine. D-Bus was developed as part of the freedesktop.org pro ...
interface. ; User Accounts : ''User Accounts Agent'' configures and manages local user accounts, local
user group A users' group (also user's group or user group) is a type of Club (organization), club focused on the use of a particular technology, usually (but not always) computer-related. Overview Users' groups started in the early days of Mainframe compu ...
s, groups membership, and accounts parameters such as the default
shell Shell may refer to: Architecture and design * Shell (structure), a thin structure ** Concrete shell, a thin shell of concrete, usually with no interior columns or exterior buttresses Science Biology * Seashell, a hard outer layer of a marine ani ...
,
home directory A home directory is a directory (file systems), file system directory on a multi-user operating system containing computer file, files for a given user (computing), user of the system. The specifics of the home directory (such as its name and loc ...
, password, and password expiration. This agent also has the ability to enumerate (discover) available local user accounts and local user groups. ; Software : ''Software Agent'' configures and manages software packages on a managed system. It has the ability to list the software installed on a system, install new software, update existing software, and remove installed software. It also has the ability to verify integrity of installed packages and their files, while using all configured repositories. ; Hardware : ''Hardware Agent'' manages hardware components, providing detailed information on their presence and associated configurations. Provided information includes the
CPU A central processing unit (CPU), also called a central processor, main processor, or just processor, is the primary processor in a given computer. Its electronic circuitry executes instructions of a computer program, such as arithmetic, log ...
-related data (number of cores, clock and FSB speeds,
cache Cache, caching, or caché may refer to: Science and technology * Cache (computing), a technique used in computer storage for easier data access * Cache (biology) or hoarding, a food storing behavior of animals * Cache (archaeology), artifacts p ...
sizes, etc.), system
memory Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remembe ...
(size, speed, available memory slots, installed
modules Module, modular and modularity may refer to the concept of modularity. They may also refer to: Computer science and engineering * Modular design, the engineering discipline of designing complex devices using separately designed sub-components ...
, etc.), physical asset data (chassis info, available ports and slots, etc.), battery (available capacity, running voltage, etc.), and
PCI PCI may refer to: Business and economics * Payment card industry, businesses associated with debit, credit, and other payment cards ** Payment Card Industry Data Security Standard, a set of security requirements for credit card processors * Prov ...
devices and bridges (available
buses A bus (contracted from omnibus, with variants multibus, motorbus, autobus, etc.) is a motor vehicle that carries significantly more passengers than an average car or van, but fewer than the average rail transport. It is most commonly used ...
, IDs of devices, device vendors, etc.) ; Logging : ''Journald Agent'' provides access to logging records through the standard OpenLMI interface. It is a client of systemd's
journald systemd is a software suite that provides an array of system components for Linux operating systems. The main aim is to unify service configuration and behavior across Linux distributions. Its primary component is a "system and service manage ...
service, accessing the journald records in several ways and providing a way to store new log records. Journald, as a structured logging system, stores supplemental information along each record, making it easier to find and extract information from the resulting
log files In computing, logging is the act of keeping a log of events that occur in a computer system, such as problems, errors or broad information on current operations. These events may occur in the operating system or in other software. A message or ' ...
. ; Performance CoPilot : ''Performance CoPilot Agent'' provides access to various system statistics and performance monitoring data collected by the Performance Co-Pilot (PCP) service running locally on a monitored host. PCP is capable of providing monitoring data for various services, including web, email and
database server A database server is a server which uses a database application that provides database services to other computer programs or to computers, as defined by the client–server model. Database management systems (DBMSs) frequently provide database- ...
s, and virtualization environments. Collected data may have any type of value, including
integers An integer is the number zero (0), a positive natural number (1, 2, 3, ...), or the negation of a positive natural number (−1, −2, −3, ...). The negations or additive inverses of the positive natural numbers are referred to as negative in ...
,
strings String or strings may refer to: *String (structure), a long flexible structure made from threads twisted together, which is used to tie, bind, or hang other objects Arts, entertainment, and media Films * ''Strings'' (1991 film), a Canadian anim ...
,
floating point numbers In computing, floating-point arithmetic (FP) is arithmetic on subsets of real numbers formed by a ''significand'' (a signed sequence of a fixed number of digits in some base) multiplied by an integer power of that base. Numbers of this form ...
, and arbitrary composite
data structure In computer science, a data structure is a data organization and storage format that is usually chosen for Efficiency, efficient Data access, access to data. More precisely, a data structure is a collection of data values, the relationships amo ...
s.


Comparison

OpenLMI is different from other configuration management systems like
Puppet A puppet is an object, often resembling a human, animal or Legendary creature, mythical figure, that is animated or manipulated by a person called a puppeteer. Puppetry is an ancient form of theatre which dates back to the 5th century BC in anci ...
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 Red Hat Enterprise Linux (RHEL) is a commercial Linux distribution developed by Red Hat. Red Hat Enterprise Linux is released in server versions for x86-64, Power ISA, ARM64, and IBM Z and a desktop version for x86-64. Fedora Linux and ...
7.0 includes support for OpenLMI since the first beta release of this
Linux distribution A Linux distribution, often abbreviated as distro, is an operating system that includes the Linux kernel for its kernel functionality. Although the name does not imply product distribution per se, a distro—if distributed on its own—is oft ...
, which was made available on December 11, 2013.
Fedora A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
20, released on December 17, 2013, also includes support for OpenLMI.


See also

* Bcfg2 *
Comparison of open-source configuration management software This is a comparison of notable free and open-source configuration management software, suitable for tasks like server configuration, orchestration and infrastructure as code typically performed by a system administrator. Basic properties ...
*
Puppet A puppet is an object, often resembling a human, animal or Legendary creature, mythical figure, that is animated or manipulated by a person called a puppeteer. Puppetry is an ancient form of theatre which dates back to the 5th century BC in anci ...
*
Simple Network Management Protocol Simple Network Management Protocol (SNMP) is an Internet Standard protocol for collecting and organizing information about managed devices on IP networks and for modifying that information to change device behavior. Devices that typically su ...
(SNMP)


References


External links

* {{Official website, http://www.openlmi.org/
OpenLMI API documentation

OpenLMI development resources

Distributed Management Task Force
(DMTF) Configuration management Linux configuration utilities