This post is a part of the nine-part “What’s New in Windows Server & System Center 2012 R2” series that is featured on Brad Anderson’s In the Cloud blog. Today’s blog post discusses how you can easily tailor and extend the inventory information you collect from Linux and UNIX computers using Open Source Software. To read that post and see the other technologies discussed, read today’s post: “What’s New in 2012 R2: Enabling Open Source Software.”
Enabling Open Source Software is a key tenet in how we design and build our cloud offerings. With System Center 2012 R2 Configuration Manager the ability to perform inventory management of Linux and UNIX systems has been substantially expanded through leveraging Open Management Infrastructure (OMI), a standards-based management stack. Customization of inventory collection on Linux and UNIX systems is now greatly simplified with OMI thereby providing system administrators with the ability to capture inventory information tailored to their specific needs. This blog post provides an overview of the Configuration Manager client implementation of OMI and the steps to easily extend the default inventory data set for Linux and UNIX systems
Using OMI to collect Linux and UNIX inventory
The Configuration Manager client for Linux and UNIX has incorporated OMI as its Common Information Model (CIM) server to enable the collection and extension of inventory information from Linux and UNIX computers. Inventory information spans details on computer hardware, installed software, operating system parameters and running processes. Inventory information is critical for systems administrators who must manage the configuration, operation, security and compliance of the computers that they are responsible for. The client for Linux and UNIX ships with the ability to collect inventory from 12 foundational CIM classes that cover computer processor, BIOS, disk, memory, network adapter, installed software and running processes and services.
Although this provides a base level of inventory information across all the supported versions of Linux and UNIX servers, it will not address the needs of all customers. The Configuration Manager client for Windows for example enables over 100 inventory classes to be collected, providing broad coverage in the case of Windows computers. Customers frequently need to collect data on Linux and UNIX computer resources that is not available through the 12 foundation CIM classes. Customers also have specialized hardware on their Linux or UNIX servers that they need to collect data from. OMI is a general purpose management stack that can extend the inventory capabilities of the client for Linux and UNIX by using custom inventory providers. The architecture of the Configuration Manager client for Linux and UNIX enables OMI extensions and supports the end-to-end customer experience to facilitate the collection of additional data from Linux and UNIX computers.
Architecture of the Configuration Manager client for Linux and UNIX
The Configuration Manager client for Linux and UNIX consists of two services, ccmexec which is the equivalent of the Windows client executable with the same name, and omiserver which is the OMI service that provides CIM server functionality that is similar to Windows Management Infrastructure (WMI) that is available on Windows-based computers. The ccmexec service communicates with the Configuration Manager server roles, receives directives from Configuration Manger and responds with appropriate status and information.
To collect inventory the ccmexec service interacts with the omiserver service which is OMI running on Linux and UNIX.
Figure 1: Architecture of the client for Linux and UNIX
Providers implement the data collection for the CIM classes, one provider for each CIM class. The Linux and UNIX providers that ship with the client are implemented in a platform-agnostic manner. They access operating system resources to collect inventory data by making system and kernel level API calls through a platform abstraction layer.
Enabling custom inventory with OMI
OMI supports an extensibility model that allows additional inventory providers to be registered. A custom provider must be developed and after successful registration with OMI, the provider can be queried to collect data from the specific resource or hardware. Since OMI is a general-purpose management stack that is both open-sourced and standards-based, the OMI providers can also be used in any other environment that uses OMI.
Figure 2: A custom inventory provider registered with OMI
To enable the client for Linux and UNIX to use custom inventory providers you should follow these steps:
- Create a custom inventory provider by using the OMI source code
- Configure computers to use the new provider to report inventory
- Enable Configuration Manager to support the new provider
Create a custom inventory provider by using the OMI source code
To create a custom inventory provider for the Configuration Manager client for Linux and UNIX, use OMI Source Version 1.0.6 and follow the instructions from the OMI Getting Started Guide. Both the OMI Source – v.1.0.6, and the OMI Getting Started Guide are available for download from The Open Group website.
As part of this process you must create a Managed Object Format (MOF) file that defines the schema of the data that the new provider must return. Later, you import the MOF file into Configuration Manager to enable support of the new custom inventory class.
The OMI source code must be built in order to generate the omigen tool. The omigen tool is used to generate C/C++ template files for the provider, based on the MOF file you created. You will need appropriate code development skills to populate these C/C++ source files with code that will collect the provider data that you want. Follow the instruction from the OMI Getting Started Guide on how to develop the provider library file.
Configure computers to use the new provider to report inventory
After you create a custom inventory provider, you must copy and then register the provider library file on each computer that has inventory you want to collect.
- Copy the provider library to each Linux and UNIX computer from which you want to collect inventory. The name of the provider library resembles the following: XYZ_MyProvider.so
- 2. Next, on each Linux and UNIX computer, register the provider library with the OMI server. The OMI server installs on the computer when you install the Configuration Manager client for Linux and UNIX but you must manually register custom providers. Use the following command line to register the provider: /opt/microsoft/omi/bin/omireg XYZ_MyProvider.so
- After you register the new provider, test the provider by using the omicli tool. The omicli tool is installed on each Linux and UNIX computer when you install the Configuration Manager client for Linux and UNIX. For example, where XYZ_MyProvider is the name of the provider you created, run the following command on the computer: /opt/microsoft/omi/bin/omicli ei root/cimv2 XYZ_MyProvider
For information about omicli and testing custom providers, see the OMI Getting Started Guide.
Enable Configuration Manager to support the new provider
Before Configuration Manager can report on inventory that is reported by the new provider on Linux and UNIX computers, you must import the Managed Object Format (MOF) file that defines the schema of your custom provider. To import a custom MOF file into Configuration Manager, use the procedure To import hardware inventory classes from the How to Extend Hardware Inventory in Configuration Manager topic.
With the new capabilities of System Center 2012 R2, Microsoft has simplified the collection and extension of inventory on Linux and UNIX computers. This has empowered customers to easily tailor inventory collection to meet their management and compliance responsibilities. In addition, hardware vendors can develop custom providers that make data from their proprietary interfaces available to any application that uses OMI. By embracing Open Source Software, Microsoft has reduced the complexity and cost of managing Linux and UNIX computers with standards-based, open-sourced management software.
To see all of the posts in this series, check out the What’s New in Windows Server & System Center 2012 R2 archive.
This posting is provided “AS IS” with no warranties and confers no rights.