HOME

TheInfoList



OR:

OpenLMI (abbreviated from Open Linux Management Infrastructure) provides a common management infrastructure for
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
systems. Available operations include configuration of various
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
parameters and services, hardware components configuration, and
monitoring Monitoring may refer to: Science and technology Biology and healthcare * Monitoring (medicine), the observation of a disease, condition or one or several medical parameters over time * Baby monitoring * Biomonitoring, of toxic chemical compounds, ...
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. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
s and standardized
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
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 lic ...
.


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, 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 th ...
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 lice ...
).


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 In distributed computing, an object request broker (ORB) is a middleware which allows program calls to be made from one computer to another via a computer network, providing location transparency through remote procedure calls. ORBs promote interop ...
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 arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
data transferred over
HTTPS Hypertext Transfer Protocol Secure (HTTPS) is an extension of the Hypertext Transfer Protocol (HTTP). It is used for secure communication over a computer network, and is widely used on the Internet. In HTTPS, the communication protocol is enc ...
. While it is possible to use XML directly, a set of client
libraries A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
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 (pro ...
and
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
. 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 interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
(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 In computer storage, a logical unit number, or LUN, is a number used to identify a logical unit, which is a device addressed by the SCSI protocol or by Storage Area Network protocols that encapsulate SCSI, such as Fibre Channel or iSCSI. A LUN m ...
(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 or physical network interface, and by similar terms) is a computer hardware component that connects a computer to a computer network. Ear ...
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 Process (computing), 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 noti ...
, 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. Its main aim is to unify service configuration and behavior across Linux distributions; Its primary component is a "system and service manager ...
's
D-Bus In computing, D-Bus (short for "Desktop Bus") is a message-oriented middleware mechanism that allows communication between multiple processes running concurrently on the same machine. D-Bus was developed as part of the freedesktop.org project, ...
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 ** Thin-shell structure Science Biology * Seashell, a hard ou ...
,
home directory A home directory is a file system directory on a multi-user operating system containing files for a given user of the system. The specifics of the home directory (such as its name and location) are defined by the operating system involved; for ...
, 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 electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and ...
-related data (number of cores, clock and FSB speeds, cache 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 remembered, ...
(size, speed, available memory slots, installed
modules Broadly speaking, modularity is the degree to which a system's components may be separated and recombined, often with the benefit of flexibility and variety in use. The concept of modularity is used primarily to reduce complexity by breaking a sy ...
, 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 * Pro ...
devices and bridges (available
buses A bus (contracted from omnibus, with variants multibus, motorbus, autobus, etc.) is a road vehicle that carries significantly more passengers than an average car or van. It is most commonly used in public transport, but is also in use for cha ...
, 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. Its main aim is to unify service configuration and behavior across Linux distributions; Its primary component is a "system and service manager ...
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 just information on current operations. These events may occur in the operating system or in other software. A message or lo ...
. ; 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 servers, and virtualization environments. Collected data may have any type of value, including
integers An integer is the number zero (), a positive natural number (, , , etc.) or a negative integer with a minus sign (−1, −2, −3, etc.). The negative numbers are the additive inverses of the corresponding positive numbers. In the language o ...
,
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 that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can be r ...
, and arbitrary composite
data structure In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data. More precisely, a data structure is a collection of data values, the relationships among them, a ...
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. The puppeteer uses movements of their hands, arms, or control devices such as rods ...
or
Bcfg2 Bcfg2 (pronounced "bee-config") is a configuration management tool developed in the Mathematics and Computer Science Division of Argonne National Laboratory. Bcfg2 aids in the infrastructure management lifecycle – configuration analysis, servi ...
, 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 open-source Linux distribution developed by Red Hat for the commercial market. Red Hat Enterprise Linux is released in server versions for x86-64, Power ISA, ARM64, and IBM Z and a desktop version ...
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 made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one ...
, 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 Bcfg2 (pronounced "bee-config") is a configuration management tool developed in the Mathematics and Computer Science Division of Argonne National Laboratory. Bcfg2 aids in the infrastructure management lifecycle – configuration analysis, servi ...
*
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. The puppeteer uses movements of their hands, arms, or control devices such as rods ...
*
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 behaviour. Devices that typically ...
(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