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 (VIMIA370)
2 Motiváció Melyik szerverekre kell felrakni az új verziót? Megérkezett a webes cache komponens új verziója – 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 Motiváció É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?
4 Konfigurációkezelés Igények és kihívások összegyűjtése
5 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
6 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” erősen keveredik egyéb operatív feladatokkal, pl. monitorozás!) Nagy rendszerre nem skálázódik: o SSH + ad hoc parancsok o SSH + szkriptek o…o… o Windows…?
7 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
8 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,... Export/import: Adatmodell Adatok Jól szabványosítható: Adatmodell leírónyelve Adatmodellek Jól szabványosítható: Adatmodell leírónyelve Adatmodellek
9 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 Tipikusan jól szabványosítható
10 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
11 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 Hogy valósítanánk ezt még?
12 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”
13 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 Metamodellek egyesítése? Hiányzó kapcsolatok o Az igazi hozzáadott érték… o … cserébe nehéz feladat ITIL v3: „Configuration Management DataBase”
14 Konfigurációkezelés - tematika szabványos modellezés szabványos távoli hozzáférés eszközök 1. Alapok, modellezés, szabványok WMI: alapok, architektúra WMI: eszközök, PowerShell WS-Management (WinRM) 2. Windows konfigurációkezelés Az ITIL CMDB fogalma Funkcionális jellemzők Felderítés 3. CMDB-k Házi feladat: CIM és WMI
15 Rendszermenedzsment és modellezés Rendszermenedzsment: OO szemlélet adódik o Különösen a konfiguráció-menedzsmentben
16 Rendszermenedzsment és modellezés Rendszermenedzsment: OO szemlélet adódik o Különösen a konfiguráció-menedzsmentben Tulajdonságok modellezése Menedzsment akciók Kapcsolatok, tartalmazások modellezése
17 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
18 CIM (Common Information Model) Kibocsájtó: Distributed Management Task Force (DMTF) Megalkotók: IBM, HP, EMC, VMware, Symantec, Microsoft … Verziók: CIM Schema: (2013) CIM Infrastructure Metamodel: (2013) Cél: menedzsment információk objektum-orientált modellezése és szabványos modellek megadása
19 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
20 A CIM jellemző alkalmazásai „CIM Object Manager” (CIMOM) „CIM Object Manager” (CIMOM) Kliens lib/tool Kliens „Provider”
21 Miket tartalmaz a CIM? CIM Specification o Szöveges dokumentum embereknek o Hogyan kell értelmezni ezt az egészet CIM Metamodel o Metamodell a későbbiekben definiált elemekhez CIM Schema o Konfigurációs adatokhoz modellek o CIM Metamodelben definiált elemek példányai Managed Object Format (MOF) o konkrét szintaxis CIM Schema elemekhez
22 Miket tartalmaz a CIM? CIM Specification o Szöveges dokumentum embereknek o Hogyan kell értelmezni ezt az egészet CIM Metamodel o Metamodell a későbbiekben definiált elemekhez CIM Schema o Konfigurációs adatokhoz modellek o CIM Metamodelben definiált elemek példányai Managed Object Format (MOF) o konkrét szintaxis CIM Schema elemekhez
23 A CIM Metamodel Szokásos fogalmak o Osztály, példány, metódus, tulajdonság, asszociáció CIM specifikus fogalmak o Séma, minősítő (qualifier)… (3.0.0-tól kezdve) UML metamodel + OCL kényszerek segítségével van definiálva
24 A CIM Metamodel (részlet)
25 A CIM Metamodel (részlet) egy osztálynév egy sémában egyedi kell legyen Metaadat-típusok kontrollált bővíthetőségéért (pl. verzió, mértékegység megadása)
26 CIM Metamodel – adattípusok Tulajdonságok, referenciák, paraméterek, visszatérési értékek, minősítők: van típusuk 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 o NULL (de nem asszociációban)
27 CIM Metamodel - 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 mik a kulcsok az osztályban o PUnit mértékegység megadása o Version verziószám
28 Miket tartalmaz a CIM? CIM Specification o Szöveges dokumentum embereknek o Hogyan kell értelmezni ezt az egészet CIM Metamodel o Metamodell a későbbiekben definiált elemekhez CIM Schema o Konfigurációs adatokhoz modellek o CIM Metamodelben definiált elemek példányai Managed Object Format (MOF) o konkrét szintaxis CIM Schema elemekhez
29 A CIM Schema szintjei Három szintbe szokás szervezni o Figyelem: ezek nem metaszintek! 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
30 Példa: CIM_Core részlet
31 Példa: CIM_System részlet (Common)
32 Példa: CIM_Network részlet (Common)
33 A CIM Schema (v2.35) struktúrája CIM_Schema (összesen ~1400 osztály!) o CIM_Application (139 osztály) o CIM_Core (173 osztály) o CIM_Database (19 osztály) o CIM_Device (296 osztály) o CIM_Event (30 osztály) o CIM_Interop (22 osztály) o CIM_IPsecPolicy (25 osztály) o CIM_Metrics (21 osztály) o CIM_Network (277 osztály) o CIM_Physical (46 osztály) o CIM_Policy (56 osztály) o CIM_Support (61 osztály) o CIM_System (145 osztály) o CIM_User (116 osztály) 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)
34 CIM Metamodel és Schema viszonya Class CIM_LogicalElement CIM_NetworkAdapter Win32_NetworkAdapter példány öröklés Metamodel Core Model Common Model Extension Schema Win32_NetworkAdapter.DeviceID= "0" Példány szint CIM Schema
35 DEMO Specification: terminológia, metamodell Schema leírások: PDF ábrák CIM
36 Miket tartalmaz a CIM? CIM Specification o Szöveges dokumentum embereknek o Hogyan kell értelmezni ezt az egészet CIM Metamodel o Metamodell a későbbiekben definiált elemekhez CIM Schema o Konfigurációs adatokhoz modellek o CIM Metamodelben definiált elemek példányai Managed Object Format (MOF) o konkrét szintaxis CIM Schema elemekhez
37 Managed Object Format (MOF) Szöveges leírónyelv o Felfogható a CIM Metamodel konkrét szintaxisaként o CIMOM import/export megvalósítása Metamodellek és modellek egy.mof állományban is lehetnek! (A szintaxisra itt nem térünk ki részletesen)
38 Példa: CIM kapcsolóosztályok Asszociáció megadása: [Association] class CIM_RunningOS : CIM_Dependency { CIM_OperatingSystem REF Antecedent; CIM_ComputerSystem REF Dependent; }; Kompozíció megadása: [Association, Aggregation, Composition] class CIM_ComputerSystemResource { [Aggregate] CIM_ComputerSystem REF GroupComponent; CIM_SystemResource REF PartComponent; };
39 MOF állomány alapú adatcsere Névtér: „olyan objektum, amely által megadott hatókörben az objektumok kulcsaik szerint egyediek”
40 MOF állomány alapú adatcsere
41 DEMO CIM Schema MOF leírása o Pl.: CIM_Location o Minősítők [ ] között Wbemtest.exe o root\cimv2 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
42 CIM összefoglaló A Common Information Model: o Definiál egy nyelvet menedzsment adatok objektum orientált modellezésére 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
43 Web Based Enterprise Management (WBEM) Kibocsájtó: Distributed Management Task Force (DMTF) Cél: CIM-et támogató rendszermenedzsment protokollok
44 Szabványos adatmodelltől a protokollokig Az alap CIM szabvány sok mindent nem definiál: 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?
45 Web Based Enterprise Management A WBEM nem egy szabvány, hanem szabvány-készlet o Protokoll: CIM-XML vagy WS-Management 2013-tól: új CIM-RS (CIM RESTful Services) o Lekérdezőnyelv: CIM Query Language (CQL) o Szolgáltatás-felderítés: WBEM Discovery Using the Service Location Protocol (SLP)
46 DMTF Technologies Diagram forrás:
47 WBEM „CIM Object Manager” (CIMOM) „CIM Object Manager” (CIMOM) Kliens lib/tool Kliens „Provider” Hordozóprotokoll Operációk Adatok
48 CIM-XML Kibocsájtó: Distributed Management Task Force Verzió: XML DTD: (final, 2009) Representation of CIM in XML: (final, 2009) CIM Operations over HTTP: (final, 2009) Cél: CIM hordozó és interop. protokoll
49 CIM-XML Cél: XML-ben reprezentált CIM adatok HTTP felett Részei: o Információ-reprezentáció XML-ben (Representation of CIM in XML) o Műveletek definíciója (CIM Operations over HTTP) o Lekérdezéshez nyelv (CIM Query Language Specification)
50 WBEM: CIM-XML „CIM Object Manager” (CIMOM) „CIM Object Manager” (CIMOM) Kliens lib/tool Kliens „Provider” HTTP „Operations” „CIM in XML”
51 Példa: egy tulajdonság lekérdezése C: FreeSpace […]
52 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
53 CIM-XML műveletek (részlet) Osztály o GetClass o EnumerateClasses o EnumerateClassNames o … Kapcsolatok o Associators o AssociatorNames o References Példány o GetInstance o EnumerateInstances o EnumerateInstanceNames o GetProperty o … Lekérdezés o ExecQuery
54 CIM objektumok megnevezése Teljes mértékben implementációfüggő Implementáció- független
55 WBEM (CIM-XML): eszköztámogatás OpenPegasus o The Open Group fejleszti, nyílt forráskódú o Red Hat Enterprise Linux, HP WBEM Services… SBLIM („sublime”) o Standards Based Linux Instrumentation o összefogó projekt …
56 Standards Based Linux Instrumentation Nyílt forrású, ingyenes projekt o Eredetileg IBM fejlesztés o Több részprojekt CIMOM: SFCB (Small Footprint CIM Broker) Linux CMPI Provider-ek (lásd CMPI) o cmpi-base, cmpi-network,cmpi-service, cmpi-syslog … Kliens: Java CIM Client o JSR 48 implementáció (~ WBEM Java API) Kliens: wbemcli (parancssori)
57 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 : / : [. ]
58 DEMO Környezet: openSUSE 12 o sblim-sfcb, SBLIM providerek és wbemcli o Tipikus portok: wbem-http (5988), wbem-https (5989) YAWN (Yet Another WBEM Navigator) wbemcli o Szolgáltatott osztályok listázása o Linux_OperatingSystem o Linux_UnixProcess; XML nézet sblim-sfcb és wbemcli
59 Ö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
60 Linkek DMTF: Common Information Model szabványok o o CIM FAQ, Web Based Enterprise Management o o CIM-XML protocol o Web Services for Management Implementációk o SBLIM o OpenPegasus,
61 Common Manageability Programming Interface (CMPI) Kibocsájtó: The Open Group Megalkotók:IBM, Oracle, Sun, … Verzió: v2.0, 2006 Cél: szabványos CIMOM Provider csatolófelület
62 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 …
63 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
64 CMPI „CIM Object Manager” (CIMOM) „CIM Object Manager” (CIMOM) Kliens lib/tool Kliens „Provider” CMPI
65 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