OpenLMI - Red Hat Summit

OpenLMI - Red Hat Summit OpenLMI - Red Hat Summit

rhsummit.files.wordpress.com
from rhsummit.files.wordpress.com More from this publisher

Introducing a New LinuxManagement API: <strong>OpenLMI</strong>Russell Doty & Stephen Gallagher<strong>Red</strong> <strong>Hat</strong>June 13, 20132


Linux System Management TodayBig Bag'OScripts& sshIs this you?Powered by


Storage● Done with local commands:● parted● pvcreate, lvcreate, vgcreate● mdraid● vgextend, resize2fs


Networking● Edited /etc/sysconfig/networkingscripts


Notice anything?● Both methods require a localshell● The methods had an entirelyunrelated user experience


The list goes on...● System services● Installing software and patches● Firewall● Performance tuning● ...


Training Costs● There is a completely isolatedpath to learning administrationof either approach● Learning either task does nothelp you learn the other


Research● “The difficulty of managingthese components is directlyimpacting our customers' abilityto consume more Linux” -- 2011<strong>Red</strong> <strong>Hat</strong> Customer SurveyResults (paraphrased)


Big Problem.What are you goingto do about it?


Demo● Create a 3-disk RAID array on aremote system● Demo script:http://tinyurl.com/openlmi-demo


# Identify “primordial” drivesdrives = ns.wql("SELECT * FROM CIM_StorageExtent ""WHERE Primordial=True")# Find partitions on the drivesdependent =extent.associators(AssocClass="CIM_BasedOn",ResultRole="Dependent")# Check for filesystemfilesystems = extent.associators(AssocClass="LMI_ResidesOnExtent",ResultClass="LMI_LocalFileSystem")# Check for swap partitionswaps = extent.associators(AssocClass="LMI_ResidesOnExtent",ResultClass="LMI_DataFormat")


# Prep the first three drivesfor drive in avail_drives:physical_device =ns.LMI_StorageExtent.first_instance(Key="Name", Value=drive)# Create a new GPT partition table on this diskjob = LMISyncJob(ns,partitioning_service.SetPartitionStyle(Extent=physical_device,PartitionStyle=gpt_caps))job.process()# Create a single partition covering the whole# diskjob = LMISyncJob(ns,partitioning_service.LMI_CreateOrModifyPartition(extent=physical_device))job.process()


# Create the RAID setjob = LMISyncJob(ns,storage_service.CreateOrModifyMDRAID(ElementName = "myRAID",InExtents = [vdb1.path, vdc1.path,vdd1.path],Level=5))job.process()# Create the EXT4 filesystemraid = ns.LMI_StorageExtent.first_instance(Key="Name",Value="/dev/md/myRAID")job = LMISyncJob(ns,filesystem_service.LMI_CreateFileSystem(FileSystemType = 32769,InExtents= [raid.path]))job.process()


A platform for manageability●●●●●●Low level functions to remotely configure andmanage bare metal production servers (andvirtual machine guests)Monitoring infrastructureStandards basedOpen and extensibleOpen, upstream project: www.openlmi.orgDelivered as part of RHEL; maintained andsupported by <strong>Red</strong> <strong>Hat</strong> in RHEL


<strong>OpenLMI</strong> System Manageability Infrastructure●Local agents installed onmanaged systems●Agents and Object Brokersupplied as part of OS● Support for futureversions of RHEL● subsets for currentversions of RHEL●Remote API● Can also be used locally●Agents and tools can bedeveloped by <strong>Red</strong> <strong>Hat</strong>,3rd parties, customers


Agents●Agents are Functional Modules●●Get/Put attributesMethods & relations●Standard Interfaces●Introspection●Agents do all the work●Toolchain for developing Agents●UML schema compile to produceskeleton●Agents can be written in C/C++or Python●Agents can be call/response orasynchronous event driven


<strong>OpenLMI</strong>Interfaces●LMI Shell●●Enhanced CLI & scriptingenvironmentAdmin Friendly●Python API●●Use from Python modulesGood interface for <strong>OpenLMI</strong>Apps●C/C++ API●Powerful interface forwriting Apps or integratingwith existing Apps●Java●●● CLIWrite Java AppsEasy interface with JBossCan be used directly or fromshell script


<strong>OpenLMI</strong> in Fedora 19●Implementation:●●DMTF/CIM technology stackHttps transport (no generalWeb server)●Included Agents:●●●●●●●●StorageNetworkSystem ServicesPower ManagementLocal User Management (basic)Software ManagementSystem Monitoring (basic)System Information &Configuration


What can you do with <strong>OpenLMI</strong>?●Storage●Active Directory●Networks●Firewall●Users●JBoss JON●Software●SCAP●Power●Monitoring & Alerts●●System ServicesSystem configurationinformationMore to come!


Benefits●●●●More Productive Sysadmins●●●●Familiar environmentStandard APIScripting friendly environmentManage remote systems without logging in locallyShorter learning curve for Linux System Administration●Common framework across disparate subsystemsFoundation for AutomationCan be used by management platforms


Your Opportunity●Give us requirements and feedback● Evaluate <strong>OpenLMI</strong> in Fedora 19●Get involved at <strong>OpenLMI</strong>.org●●●●●TestingUse casesScriptsAgentsTools


Key Information●●●●●Russell Doty: rdoty@redhat.comStephen Gallagher: sgallagh@redhat.comwww.openlmi.orglists.fedorahosted.org/mailman/listinfo/openlmi-devel#openlmi on freenode

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!