1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Konfigurációkezelés Kocsis Imre, Micskei Zoltán Intelligens rendszerfelügyelet
2 Forgatókönyv 1. Nézzük végig a munkaállomásokat. Azokról van valami listánk…? Nézzük végig a munkaállomásokat. Azokról van valami listánk…? Megérkezett a bérszámfejtő program frissítése (új GUI) – telepíteni kellene. 1.Munkavállalói emlékezet 2.„Kockás füzet” 3.Visio 4.(Konfiguráció) adatbázis? 1.Munkavállalói emlékezet 2.„Kockás füzet” 3.Visio 4.(Konfiguráció) adatbázis?
3 Forgatókönyv 1. Rendben; melyiken is van bérszámfejtő szoftver és milyen verziójú? 1.Munkavállalói emlékezet 2.„Kockás füzet” 3.Visio 4.(Konfiguráció) adatbázis? 1.Munkavállalói emlékezet 2.„Kockás füzet” 3.Visio 4.(Konfiguráció) adatbázis?
4 Forgatókönyv 1. És ha nem frissek az adatok? 1.Odamegyünk 2.ssh/RDP/VNC/… 3.Házilagos „varázslat”… 4.Platformtámogatás? 1.Odamegyünk 2.ssh/RDP/VNC/… 3.Házilagos „varázslat”… 4.Platformtámogatás?
5 Forgatókönyv 1. Ok, akkor kezdjünk neki; távoli MSI install… 1. Délután három van; nem elég hogy nem tudok dolgozni, a mai munkám elveszett.
6 Forgatókönyv Negyedéves zárás holnap. 3. A GUI szép, csak egy pár dolog most nem megy. Tesztelte ezt valaki? Ki engedélyezte? Álljunk gyorsan vissza mentésre! …? Ez egy „back office” forgatókönyv; „production system”-eken még élesebb hatások.
7 Forgatókönyv 2. Nem megy a vállalati portál!!! Nem megy a vállalati portál!!! Melyik gépek is szolgálják ki? Ühm… 15 szerver, 2 hálózat… Monitorozó rendszer mérései? Ühm… 15 szerver, 2 hálózat… Monitorozó rendszer mérései?
8 Forgatókönyv 2. Megvan, az egyik adatbázis került inkonzisztens állapotba. 2 x = ? $ Tanulságok?
9 Konfigurációkezelés Igények és kihívások összegyűjtése
10 1. Konfiguráció-adatbázisok Igény: konfiguráció adatbázisok o Nem triviális méretű rendszerek Területek és „silók” szerint több adatbázis lesz! o HW o Hálózati eszközök és topológia (~IP szintig) o OS platformok és szoftverek – leltár o SW licenszek! o OS és alkalmazás/kiszolgáló beállítások o Szolgáltatások erőforrások o…o… Ha tényleg adatbázis: modellezni is kell… Minden esetben új adatmodell? Common Information Model Ha tényleg adatbázis: modellezni is kell… Minden esetben új adatmodell? Common Information Model
11 2. Szabványosítás Igény: konfigurációs adatok távoli lekérdezése/módosítása (A „konfigurációkezelés” koncepcionálisan erősen keveredik egyéb operatív feladatokkal!) Elég nagy és bonyolult környezetben az ad-hoc megoldások már nem elegek o SSH + $foo parancs o SSH + expect o…o… o Windows…?
12 2. Szabványosítás Mi szabványosítható? Hordozóprotokoll o Ötletek? Üzenet-típusok és paraméterezésük o Feltételezve a kérdés/válasz + események modellt Üzenetekben szállított adatok modellje o Miért ≠ az előbbi adatmodellel? Létező szabványok? o SNMP, CIM-XML, WMI, WS-Management (WinRM), WSDM, JMX, …
13 Konfigurációkezelés – architektúra? Konfigurációs adatbázis/ Konfiguráció-menedzser Konfigurációs adatbázis/ Konfiguráció-menedzser Tárolás vagy igény esetén lekérdezés Beavatkozás
14 Konfigurációkezelés – architektúra? Konfigurációs adatbázis/ Konfiguráció-menedzser Konfigurációs adatbázis/ Konfiguráció-menedzser Relációs adatbázis, OO adatbázis/modelltér, nem OO memóriastruktúrák, … Export/import: Adatmodell Adatok Jól szabványosítható: Adatmodell/modell leírónyelv Adatmodellek Jól szabványosítható: Adatmodell/modell leírónyelv Adatmodellek
15 Konfigurációkezelés – architektúra? Konfigurációs adatbázis/ Konfiguráció-menedzser Konfigurációs adatbázis/ Konfiguráció-menedzser Kliens Hordozóprotokoll Operációk Adatok Jól szabványosítható Jól szabványosítható
16 Konfigurációkezelés – architektúra? Konfigurációs adatbázis/ Konfiguráció-menedzser Konfigurációs adatbázis/ Konfiguráció-menedzser Kliens Jellemző gép határ Technológiafüggő lib/tool
17 Az architektúra, amire szabványokat illesztünk Konfigurációs adatbázis/ Konfiguráció-menedzser Konfigurációs adatbázis/ Konfiguráció-menedzser Kliens lib/tool Kliens „Provider” Hordozóprotokoll Operációk Adatok
18 3. Folyamatok Igény: megfelelő folyamatok o Konfiguráció-változás bevezetésére o Eltérés monitorozására és kezelésére Mennyire jól szabványosítható? „best practice” gyűjtemények: minták o Minimálisan: fogalmi keretrendszer o ITIL – „adapt & adopt”
19 4. CMDB Igény: konfigurációs adatbázisok között kapcsolat o Pl.: fizikai hely, IP cím és szolgáltatás más DB-ben o Egyesítés? Federáció? o Metamodell harmonizáció és egyesítés? Hiányzó kapcsolatok o Az igazi hozzáadott érték… o … cserébe nehéz feladat ITIL v3: „Configuration Management DataBase”
20 Konfigurációkezelés - tematika szabványos modellezés szabványos távoli hozzáférés eszközök, szabványos „provider”-ek 1. Alapok, modellezés, szabványok WMI: alapok, architektúra WMI: eszközök, PowerShell WS-Management, mint WinRM 2. Windows konfigurációkezelés Az ITIL CMDB fogalma; modellezés Funkcionális és architekturális jellemzők Felderítés 3. CMDB-k Házi feladat: CIM és WMI
21 Rendszermenedzsment és modellezés Rendszermenedzsment: OO szemlélet adódik o Különösen a konfiguráció-menedzsmentben
22 Rendszermenedzsment és modellezés Rendszermenedzsment: OO szemlélet adódik o Különösen a konfiguráció-menedzsmentben Entitás-jellemzők modellezése Menedzsment akciók modellezése Kapcsolatok, tartalmazások modellezése
23 Modellek megadása (emlékeztető) Mi kell adatmodellek megadásához? Mi kell egy modellezési nyelv precíz megadásához? Kell(enek) metamodell(ek) Kellenek: o Absztrakt és konkrét szintaxis o Jól formáltsági szabályok, szemantika
24 CIM (Common Information Model) Kibocsájtó: Distributed Management Task Force (OMG) Megalkotók: IBM, HP, EMC, VMware, Symantec, … Verziók: CIM Schema: 2.28 (2011) CIM Infrastructure Specification: 2.6 (2010) Cél: menedzsment információk objektum-orientált modellezése és szabványos modellek megadása
25 A Common Information Model (CIM) Szabványos, kiterjeszthető IT adatmodell o Használják is: VMware ESX, HP, IBM termékek, Windows Management Instrumentation… Cél: o Különböző gyártók termékei együtt tudjanak működni o Ugyanazt értsük az adott fogalmak alatt o Könnyen kiterjeszthető legyen saját fogalmakkal
26 A CIM jellemző alkalmazásai „CIM Object Manager” (CIMOM) „CIM Object Manager” (CIMOM) Kliens lib/tool Kliens „Provider”
27 Miket tartalmaz a CIM? CIM Infrastructure Specification o Szöveges dokumentum embereknek o Hogyan kell értelmezni ezt az egészet CIM Meta Schema o Metamodell a későbbiekben definiált elemekhez CIM Schema o Konfigurációs adatokhoz modellek o CIM Meta Schemában definiált elemek példányai Managed Object Format (MOF) o konkrét szintaxis CIM Schema elemek és példányaikhoz
28 Miket tartalmaz a CIM? CIM Infrastructure Specification o Szöveges dokumentum embereknek o Hogyan kell értelmezni ezt az egészet CIM Meta Schema o Metamodell a későbbiekben definiált elemekhez CIM Schema o Konfigurációs adatokhoz modellek o CIM Meta Schemában definiált elemek példányai Managed Object Format (MOF) o konkrét szintaxis CIM Schema elemek és példányaikhoz
29 A CIM Meta Schema Metametamodell Szokásos fogalmak o Osztály, példány, metódus, tulajdonság, asszociáció CIM specifikus fogalmak o Séma, trigger, jelzés, minősítő (qualifier) UML-ben felrajzolható o De vannak az UML-ből ismeretlen elemek
30 A CIM Meta Schema (részlet)
31 A CIM Meta Schema (részlet) egy osztálynév egy sémában egyedi kell legyen nincs többszörös öröklés példány állapotváltás vagy hozzáférés esetén tüzelhet Metaadat-típusok kontrollált bővíthetőségéért (pl. verzió, mértékegység megadása)
32 CIM Meta Schema – adattípusok Tulajdonságok, referenciák, paraméterek, visszatérési értékek, minősítők: van típusok Csak a beépített típusok vagy azok tömbjei: o u/s}int{8/16/32/64}, string, boolean, real{32/64}, Datetime, char 16 o ref – erősen típusos referencia o NULL (de nem asszociációban)
33 CIM Meta Schema - minősítők Qualifier (minősítő) o Kicsit hasonlít az UML szterotípiára o Csak osztályokon szerepelhet, példányon nem! Gyakori minősítők: o Abstract – absztrakt osztály jelölése o Description – elem leírása o In, Out – paraméter irány megadása o Key – melyik tulajdonságok a kulcsok egy osztályban o PUnit – mértékegység megadása o Version - verziószám
34 Miket tartalmaz a CIM? CIM Infrastructure Specification o Szöveges dokumentum embereknek o Hogyan kell értelmezni ezt az egészet CIM Meta Schema o Metamodell a későbbiekben definiált elemekhez CIM Schema o Konfigurációs adatokhoz modellek o CIM Meta Schemában definiált elemek példányai Managed Object Format (MOF) o konkrét szintaxis CIM Schema elemek és példányaikhoz
35 A CIM Schema szintjei Három szintbe szokás szervezni o Figyelem: ezek nem absztrakciós szintek! o Az egyes szintek elemei között öröklés van általában Core Model: általános fogalmak o Példák: ManagedElement, Setting, Location, FRU Common Model: szokásos területek technológia- független modelljei o Példák: Application, Database, Device Extension Schemas: gyártóspecifikus kiterjesztések o Példák: SAP_SWProduct, HP_BladeEnclosureCS
36 Példa: CIM_Core részlet
37 Példa: CIM_System részlet
38 Példa: CIM_Network részlet
39 A CIM Schema (V2.28) struktúrája CIM_Schema o CIM_Application o CIM_Application-J2eeAppServer o CIM_Core o CIM_Database o CIM_Device o CIM_Event o CIM_InteropCIM_IPsecPolicy o CIM_Metrics o CIM_Network o CIM_Physical o CIM_Policy o CIM_Security o CIM_Support o CIM_System o CIM_User A teljes modell hatalmas. Viszont: egy eszköz „CIM megfelelősége” pusztán a képesség MOF állományok betöltésére és exportálására A teljes modell hatalmas. Viszont: egy eszköz „CIM megfelelősége” pusztán a képesség MOF állományok betöltésére és exportálására
40 Meta Schema és Schema viszonya Class CIM_LogicalElement CIM_NetworkAdapter Win32_NetworkAdapter példány öröklés Meta Schema Core Model Common Model Extension Schema Win32_NetworkAdapter.DeviceID= "0" Példány szint
41 DEMO o Specification: terminológia, metametamodell o Schema leírások: PDF ábrák PowerShell WMI Explorer WPF Edition o Win32_ComputerSystem Messze nem csak konfigurációkezelés: o Win32_Process CIM
42 Miket tartalmaz a CIM? CIM Infrastructure Specification o Szöveges dokumentum embereknek o Hogyan kell értelmezni ezt az egészet CIM Meta Schema o Metamodell a későbbiekben definiált elemekhez CIM Schema o Konfigurációs adatokhoz modellek o CIM Meta Schemában definiált elemek példányai Managed Object Format (MOF) o konkrét szintaxis CIM Schema elemek és példányaikhoz
43 Managed Object Format Managed Object Format: szöveges leírónyelv o Felfogható a CIM Meta Schema konkrét szintaxisaként o CIMOM import/export megvalósítása Menedzsment információk deklaratív leírása Metamodellek és modellek egy.mof állományban is lehetnek! (A szintaxisra itt nem térünk ki)
44 MOF állomány alapú adatcsere Névtér: „olyan objektum, amely által megadott hatókörben az objektumok kulcsaik szerint egyediek”
45 MOF állomány alapú adatcsere
46 CIM objektumok megnevezése Teljes mértékben implementációfüggő Implementáció- független
47 DEMO CIM Schema MOF leírása o Pl.: CIM_Location o Minősítők [ ] között WMI Explorer o ROOT\SecurityCenter2 névtérhez csatlakozás o AntiSpywareProduct példányai Wbemtest.exe o root névtérhez csatlakozás o CIM_LogicalDevice osztály leszármazottai Osztály definíció (minősítők, tulajdonságok, metódusok) MOF megnézése Példányait megnézni, tulajdonságok értékei, MOF megnézése CIM névterek, MOF
48 Összefoglaló A Common Information Model: o Definiál egy nyelvet menedzsment adatok objektum orientált modellezésére (MOF) o Megadja modelleknek egy igen tág, konkrét technológiáktól független, hierarchikus, kiterjeszthető halmazát A modellek UML-ben jól vizualizálhatóak A modellek (sémák) MOF és grafikus formátumban is elérhetőek
49 Linkek CIM Schema: 2.28 (2011) o CIM Infrastructure Specification: 2.6 (2010) o ts/DSP0004_2.6.0_0.pdf ts/DSP0004_2.6.0_0.pdf CIM FAQ,
50 Web Based Enterprise Management (WBEM) Kibocsájtó: Distributed Management Task Force (OMG) Cél: CIM-et támogató rendszermenedzsment protokollok
51 Szabványos adatmodelltől a protokollokig A CIM a saját felhasználásával kapcsolatban több kérdést szándékoltan nyitva hagy Hozzáférési protokoll o Egy CIMOM, mint kiszolgáló milyen kéréseket értelmezzen? o Hogyan válaszoljon? o Milyen protokollon keresztül legyen elérhető? Lekérdezőnyelv? Szolgáltatás-felderítés?
52 Web Based Enterprise Management A WBEM nem egy szabvány, hanem szabvány-készlet o Protokoll: CIM-XML vagy WS-Management o Lekérdezőnyelv: CIM Query Language o Szolgáltatás-felderítés: WBEM Discovery Using the Service Location Protocol (SLP)
53 WBEM „CIM Object Manager” (CIMOM) „CIM Object Manager” (CIMOM) Kliens lib/tool Kliens „Provider” Hordozóprotokoll Operációk Adatok
54 Linkek Web Based Enterprise Management o CIM-XML protocol o Web Services for Management o CIM Query Language Specification o s/DSP0202_1.0.0.pdf s/DSP0202_1.0.0.pdf
55 CIM-XML Kibocsájtó: Distributed Management Task Force Verzió: XML DTD: (final, 2007) Representation of CIM in XML: (final, 2007) CIM Operations over HTTP: (final, 2007) Cél: CIM hordozó és interop. protokoll
56 CIM-XML Cél: XML-ben reprezentált CIM információ-csere HTTP felett Információ-reprezentáció XML-ben o Egy XML DTD + dokumentáció („Representation of CIM in XML”) HTTP mint „wire protocol” o „CIM Operations over HTTP” CIM Query Language mint lekérdezőnyelv o „CIM Query Language Specification”
57 WBEM: CIM-XML „CIM Object Manager” (CIMOM) „CIM Object Manager” (CIMOM) Kliens lib/tool Kliens „Provider” HTTP „Operations” „CIM in XML”
58 Példa: egy tulajdonság lekérdezése C: FreeSpace […]
59 Példa: lekérdezésre válasz HTTP/ OK Content-Type: application/xml; charset="utf-8" Content-Length: xxxx Ext: Cache-Control: no-cache Man: ; ns=73 73-CIMOperation: MethodResponse
60 WBEM (CIM-XML): eszköztámogatás OpenPegasus o Red Hat Enterprise Linux o VMware ESX Server o IBM AIX Pegasus CIM Server o HP WBEM Services o Microsoft System Center Operations Manager 2007 Cross Platform Extensions Beta (csak kliens) o … SBLIM („sublime”): Standards Based Linux Instrumentation, összefogó projekt …
61 Standards Based Linux Instrumentation Nyílt forrású, ingyenes projekt o Eredetileg IBM fejlesztés o Több részprojekt; itt: néhány kiemelt CIMOM: SFCB (Small Footprint CIM Broker) Java CIM Client o JSR 48 implementáció (~ WBEM Java API) o Service Location Protocol (SLP) kliens (IETF RFC) Linux CMPI Provider-ek (lásd CMPI) o cmpi-base, cmpi-network, cmpi-rpm, cmpi-service, cmpi- syslog, … o távoli CMPI-hez proxy provider és távoli démon o Perl CMPI provider wbemcli
62 wbemcli Egyszerű parancssori CIM kliens Szintaxis: o wbemcli objectPath Műveletek (op) o gc – get class, gi – get instance o ei – enumerate instances o … ObjectPath: CIM objektum teljes neve o : / : [. ]
63 DEMO Környezet: CentOS 5 o OpenPegasus, SBLIM provider-ek és wbemcli repository-ból o Tipikus portok: wbem-http (5988), wbem-https (5989) Provider-ek listázása wbemcli o Szolgáltatott osztályok listázása o Linux_OperatingSystem o Linux_UnixProcess; xml nézet OpenPegasus + wbemcli
64 Linkek CIM-XML protocol o XML DTD: (final, 2007) o Representation of CIM in XML: (final, 2007) o CIM Operations over HTTP: (final, 2007) o CIM Query Language Specification o 2_1.0.0.pdf 2_1.0.0.pdf
65 Linkek OpenPegasus o SBLIM o Régebb óta nem fejlesztett projektek o OpenWBEM, o WBEM Services, o pyWBEM,
66 Common Manageability Programming Interface (CMPI) Kibocsájtó: The Open Group Megalkotók:IBM, Oracle, Sun, … Verzió: -, 2004 Cél: szabványos CIMOM Provider csatolófelület
67 CIMOM Provider-ek A CIMOM-ok „Provider”-eket használnak a technológia-specifikus feladatok delegálására, pl. o „példány szolgáltató”: futó Linux folyamatok o „metódus szolgáltató”: Linux folyamat leállítása o …
68 CIMOM Provider-ek CIMOM Provider: WBEM-nek nem része o Még a „Provider” fogalom sem jelenik meg Következmény: CIMOM-onként eltérő… o Támogatott programozási nyelvek o Illesztőfelület-logika o Provider-struktúra Hiába a WBEM szabvány, az instrumentáció megvalósítója… o Vagy adott CIMOM-hoz köti magát; o Vagy többhöz is implementál Válasz: interfész szabványosítása
69 CMPI „CIM Object Manager” (CIMOM) „CIM Object Manager” (CIMOM) Kliens lib/tool Kliens „Provider” CMPI
70 CMPI Alapfogalmak o „Management Broker” (MB) o „Management Instrumentation” (MI) MI fejlesztés: adott ANSI C header állományok Akár bináris kompatibilitás Nincs szükség semmilyen linkelt könyvtárra CIMOM adattípus-implementációjának fedése Támogatás: o OpenPegasus o openWBEM o SFCB
71 Linkek CMPI technical standard & corrigenda o tm tm Egy áttekintő előadás (IBM Linux Technology Center) o e/dw/library/os-ltc-systemsmanagement/cmpi- overview.pdf e/dw/library/os-ltc-systemsmanagement/cmpi- overview.pdf
72 Összefoglalás Konfigurációs adatbázis/ Konfiguráció-menedzser Konfigurációs adatbázis/ Konfiguráció-menedzser Kliens lib/tool Kliens „Provider” Hordozóprotokoll Operációk Adatok CIM MOF CMPI CIM-XML wbemcli OpenPegasus SFCB SBLIM Java CIM Client