OpenLMI - Red Hat Summit
OpenLMI - Red Hat Summit OpenLMI - Red Hat Summit
- Page 2 and 3: Introducing a New LinuxManagement A
- Page 4 and 5: Storage● Done with local commands
- Page 6 and 7: Notice anything?● Both methods re
- Page 8 and 9: Training Costs● There is a comple
- Page 10: Big Problem.What are you goingto do
- Page 14 and 15: # Identify “primordial” drivesd
- Page 16 and 17: # Create the RAID setjob = LMISyncJ
- Page 18 and 19: OpenLMI System Manageability Infras
- Page 20 and 21: OpenLMIInterfaces●LMI Shell●●
- Page 22 and 23: What can you do with OpenLMI?●Sto
- Page 24 and 25: Your Opportunity●Give us requirem
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