konfigurációkezelés windowson

50
1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Konfigurációkezelés Windowson Micskei Zoltán http://mit.bme.hu/~micskeiz Intelligens rendszerfelügyelet

Upload: leslie-hopper

Post on 31-Dec-2015

35 views

Category:

Documents


0 download

DESCRIPTION

Intelligens rendszerfelügyelet. Konfigurációkezelés Windowson. Micskei Zoltán http://mit.bme.hu/~micskeiz. Previously …. Modellezés Címtárak Konfiguráció kezelés Konfiguráció kezelés alapok Konfiguráció kezelés Windowson Konfiguráció kezelés CMDB. Konfigurációkezelés általánosan. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Konfigurációkezelés Windowson

1Budapesti Műszaki és Gazdaságtudományi EgyetemMéréstechnika és Információs Rendszerek Tanszék

Konfigurációkezelés Windowson

Micskei Zoltánhttp://mit.bme.hu/~micskeiz

Intelligens rendszerfelügyelet

Page 2: Konfigurációkezelés Windowson

2

Previously… Modellezés

Címtárak

Konfiguráció kezeléso Konfiguráció kezelés alapoko Konfiguráció kezelés Windowsono Konfiguráció kezelés CMDB

Page 3: Konfigurációkezelés Windowson

3

Konfigurációkezelés általánosan

Konfigurációs adatbázis/Konfiguráció-menedzser

Form TitleForm Title

DB ...

Kliens

lib/tool

Kliens

„Provider”„Provider”„Provider”„Provider”

Hordozóprotokoll

OperációkAdatok

Page 4: Konfigurációkezelés Windowson

4

Konfigurációkezelés Windowson

Windows Management Instrumentation (WMI)

Form TitleForm Title

DB ...

Kliens

lib/tool

Kliens

„Provider”„Provider”„Provider”„Provider”

Hordozóprotokoll

OperációkAdatok

MOF

Page 5: Konfigurációkezelés Windowson

5

Windows Management Instrumentation (WMI)

Page 6: Konfigurációkezelés Windowson

6

WMI felhasználói szemszögből CIM Object Manager Windowsra

o „winmgmt” szolgáltatáso kiterjesztett sémakészlet

A modern Windowsokon elérhetőo Felügyeleti megoldások alapja

Interfész: COM/DCOMo IWbemServiceso lekérdezések, metódushívások, sémamódosítások, …o a CIM szabvány ilyeneket nem definiál!o Sokféle elérés: szkriptnyelvek, .NET…

Page 7: Konfigurációkezelés Windowson

11

WMI architektúra: felhasználói szemszögWMI információk

felhasználása

CIMOM: WMI szolgáltatás

A lista bővíthetőWDM

Registry

SNMP

Exchange

Win32 API

MOF

CIM Repository

WindowsManagement Service

WinMgmt.exe

COM

C/C++ alkalmazás

PowerShell szkript

.NET alkalmazás

CIM(Common

Information Model)

Providers (Szolgáltatók)

Consumers(fogyasztók)

Forrás: Soós Tibor és Szerényi László: Microsoft PowerShell 1.0 rendszergazdáknak – elmélet és gyakorlat

Page 8: Konfigurációkezelés Windowson

12

Példa: néhány WMI névtér, osztály

• Hardver• Win32_BaseBoard• Win32_DiskDrive

• OS• Win32_PageFile• Win32_Registry

• Telepített szoftver• Win32_Patch• Win32_Product

• Teljesítményszámlálók• Win32_Perf• Win32_PerfRawData

root\cimv2

• ds_person• ds_group

directory\ldap

• SqlService• ServerSettings

Microsoft\SqlServer

• IANet_EthernetAdapter

IntelNIC

Page 9: Konfigurációkezelés Windowson

13

DEMO

WMI részei:o C:\windows\system32\wbem

Itt találhatóak:o *.exeo dll: provider-ek megvalósításao *.mof

WBEM könyvtár, MOF fájlok

Page 10: Konfigurációkezelés Windowson

14

WMI Query Language (WQL) WMI: nagy mennyiségű adat WQL: keresés, szűrés ezekben

SQL szerű szintaxis:o SELECT attrib FROM osztály WHERE feltétel

Példa:SELECT eventcode, message, sourcenameFROM Win32_NTLogEvent WHERE type = 'error' AND logfile ='system'

Page 11: Konfigurációkezelés Windowson

15

WMI Query Language (WQL)Kapcsolódó példányok lekérdezése ASSOCIATORS OF kulcsszó Példa:

o ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"}

o Összes kapcsolódó példány bármilyen referenciából Csak adott kapcsolat mentén:

o ASSOCIATORS OF {Win32_LogicalDisk.DeviceID="C:"} WHERE AssocClass = Win32_SystemDevices

WHERE ClassDefsOnly – csak osztályneveket

Page 12: Konfigurációkezelés Windowson

17

WMI elérése

Windows Management Instrumentation (WMI)

Form TitleForm Title

DB ...

Kliens

lib/tool

Kliens

„Provider”„Provider”„Provider”„Provider”

MOF

Távoli elérés(Vista előtt):

DCOM

Helyi gép:C++/

COM, .NET, VBScript,

PowerShell

Page 13: Konfigurációkezelés Windowson

18

WMI távoli elérés Megvalósítás: DCOM hívások Tűzfal beállítások engedélyezése

o Távoli adminisztráció (TCP 135-ös port)netsh firewall set service RemoteAdmin enable

Page 14: Konfigurációkezelés Windowson

19

WMI felhasználása Ad-hoc lekérdezések, utasítások

o Pl.: wmic.exe Szkriptek készítése

o bonyolultabb műveletek, rendszeres feladatoko Pl.: VBScript, PowerShell

Felhasználás .NET-es alkalmazásbano System.Management névtér osztályai

Rendszermenedzsment alkalmazáson keresztülo Pl.: MS System Center, HP OpenView…

Page 15: Konfigurációkezelés Windowson

21

WMI felhasználása – .NET Menyi szabad hely van a C: meghajtón? WQL lekérdezés végrehajtása távoli gépen

Kapcsolódás a ManagementScope-

hoz

WQL lekérdezés

Eredményhalmaz feldolgozása

Page 16: Konfigurációkezelés Windowson

22

WMI felhasználása – PowerShell Get-WmiObject cmdlet segítségével

Visszaadott objektum:o Típus: System.Management.ManagementObjecto CIM-ben definiált tulajdonságokoMetódusok

Page 17: Konfigurációkezelés Windowson

23

WMI felhasználása – PowerShell Beépített CIM objektumok:

Eredmények szűrése:oWQL kifejezés átadása a -query paraméterbeno -Filter paraméter: WQL where része csako vagy: PowerShell cmdletek használata

[wmi] típus használataoWmiPath string alapján objektum létrehozásao [wmi] '\\gep\root\cimv2:Win32_Processor.DeviceID="CPU0"'

Page 18: Konfigurációkezelés Windowson

24

WMI felhasználása – PowerShell Példa: keressük meg a memóriával kapcsolatos

CIM objektumokat

Nézzük meg, hogy fut-e a W32Time szolgáltatás:

Page 19: Konfigurációkezelés Windowson

25

WMI felhasználása – PowerShell Egy kis segítség: PowerShell WMI Explorer

Page 20: Konfigurációkezelés Windowson

26

WMI felhasználása – PowerShell Melyik gépen nézzünk filmet este?param( [string[]] $computers = $(throw "Supply machines!"))

foreach ($computer in $computers){# maximális monitor felbontás

$screenSize = (Get-WmiObject win32_DesktopMonitor -ComputerName $computer | Measure-Object -Maximum -Property screenwidth).Maximum

# van-e divx a gépen $divx = (Get-WmiObject win32_codecfile

-ComputerName $computer | where {$_.filename -contains "divx"} | Measure-Object).Count

write-host $computer $screenSize $divx}

Page 21: Konfigurációkezelés Windowson

27

WMI fejlesztői szemszögből Provider feladatai

oMetódushívás hatására „történjen is valami”o Osztályok példányai „a valóságot tükrözzék”o…

Megvalósító komponensek: WMI provider-eko IWbemServices-t implementáló COM kiszolgálók

• Meglehetősen bonyolult implementációo Alternatíva: .NET System.Management névtér

Page 22: Konfigurációkezelés Windowson

28

WMI Providerek

SNMPmanaged entity

Windows (Win32)managed entity

Any managed entity (native code)

SNMP WMIprovider

Cimv2 WMI provider

Any WMI provider

Native C/C++

...

WMI providers

and managed objects

COM Inter-Op

System.Management (instrumentation objects)

.NET WMI provider

.NET managed application/entity

.Net C#, VB .NET, ...

WMI core(CIM Object Manager)

WMI repository

WMI infrastructure

COM / DCOM

Forrás: MSDN, http://msdn.microsoft.com/en-us/library/aa394553(VS.85).aspx

Page 23: Konfigurációkezelés Windowson

29

WMI Provider készítése .NET-ben Adatok megadása: attribútumokkal

o WmiConfiguration: névtér megadásao ManagementEntity: osztály dekorálásao ManagementProbe: WMI-ból olvasható tulajdonságo ManagementTask: WMI-ból elérhető metódus

Példányosítás:o Singleton: csak egy példánya vano Multi-instance: ManagementKey adja meg, hogy melyik példány

kell nekünk Futtatási mód:

o Coupled: WMI szolgáltatás folyamatán belülo Decoupled: külön folyamatban, az alkalmazással együtt

Egyszerű .NET WMI Provider futtatása

Page 24: Konfigurációkezelés Windowson

30

Egyszerű WMI Provider C#-ban

Hosting modell

Provider neve

WMI-ból lekérdezhető tulajdonság

Page 25: Konfigurációkezelés Windowson

31

Web Services for Management (WS-Management)

Kibocsátó: Distributed Management Task ForceMegalkotók: AMD, Dell, Intel, Microsoft, Sun…Verzió: első draft (2005. 09.), aktuális: 1.1.0 (2010. 03. 03.)Cél: Webszolgáltatás alapú protokoll rendszerek

menedzseléséhez

Page 26: Konfigurációkezelés Windowson

32

Konfigurációkezelés általánosan

CIM Object Manager

Form TitleForm Title

DB ...

Kliens

lib/tool

Kliens

„Provider”„Provider”„Provider”„Provider”

WS-Management

OperációkAdatok

Page 27: Konfigurációkezelés Windowson

33

WS-Management

WBEM egyik protokollja

Web Service alapúo sok egyéb WS-* protokollra épül

CIMOM elérése, lekérdezése, menedzseléseo De használható nem csak CIMOM-hoz!

Page 28: Konfigurációkezelés Windowson

34

WS-Managenent példa üzenetMelyik gép Mit akarunk

Gép melyik erőforrásával

Ha az erőforrás egy csoport (pl. CPU-k), akkor a csoport

melyik tagja

Page 29: Konfigurációkezelés Windowson

35

WS-Management: műveletek DISCOVERoerőforrások felderítése

GET, PUT, CREATE, DELETEoerőforrások kezelése

ENUMERATEogyűjtemények elemeinek felsorolása

SUBSCRIBEoeseményekre feliratkozás

EXECUTEometódusok meghívása

Page 30: Konfigurációkezelés Windowson

36

Felhasznált protokollok

Szállítás

WS-MAN WSDL Binding for CIM

XML, SOAP, WS-Addressing

HTTPS, TCP

WS-Transfer WS-Enum WS-Eventing

WS-Management

WS-CIM Schema Translation

Security profiles

ResourceAddressing

Üzenetküldés

Leíró

Adatátvitel

Alkalmazás

Integráció

Biztonság

Page 31: Konfigurációkezelés Windowson

37

Implementációk Windows Remote Management (WinRM)

o WMI lekérdezés és távoli parancssoro CLI, scripting API

Openwsman; F/OSSo Kiszolgáló: CIM-XML-t „fordít” WS-Managementre

• Adapter tervezési minta; SBLIM SFCC, mint klienso CLI, mod_wsman, Ruby kötések

wiseman; F/OSSo Java alapú kliens és kiszolgáló megvalósítás támogatása

Page 32: Konfigurációkezelés Windowson

38

Ki használja? Windows Server 2008 R2

o Server Manager távoli gépreo PowerShell 2.0 Remoting

VMware ESX és ESXio openwsman deamon futtatása

Microsoft Operations Managero Cross Platform: Linux gépek monitorozása

HP System Insights Manager …

Page 33: Konfigurációkezelés Windowson

39

DEMO

Kliens: Windows 7 (WinRM) Kiszolgáló: VMware ESXi (openwsman)

winrm enum cimv2/CIM_Processor -r:https://galadriel.ftslab.local/wsman -skipCAcheck -skipCNcheck -auth:basic -username:root -password:password

VMware API leírás

ESXi lekérdezése WinRM-ből

Page 34: Konfigurációkezelés Windowson

40

Windows Remote Management (WinRM)

Page 35: Konfigurációkezelés Windowson

41

Windows Remote Management (WinRM) Új távoli menedzsment szolgáltatás a Windowsban

WS-Management implementáció

Elérhetőség:oWindows 7, Server 2008 R2: gyárilag (2.0)o Vista, Server 2008: gyárilag (1.0), telepíthető (2.0)o XP, Windows Server 2003 R2: külön telepíthető (2.0 is)

WMI beágyazható WinRM-be, de több annál

Page 36: Konfigurációkezelés Windowson

42

WinRM vs. WMI

WMI:o DCOM-ot használ a távoli elérésreo Nem szabványos, nem tűzfalbarát

WinRM:oWS-Managemento DMTF szabvány, http/https porton keresztül

Page 37: Konfigurációkezelés Windowson

43

WinRM architektúra

Page 38: Konfigurációkezelés Windowson

44

WinRM inicializálása WinRM részei:

oWinRM szolgáltatásoWinRM listener: WS-Management üzenetek

fogadására szolgáló végpont definíciója Inicializálás:

Page 39: Konfigurációkezelés Windowson

45

Példa WMI lekérdezés WinRM-en keresztül Művelet: GET Erőforrás URI: WMI objektum Távoli gép, hitelesítési információ megadása

Page 40: Konfigurációkezelés Windowson

46

További műveletek Enumerate:

o Több objektum lekéréseo winrm enumerate wmicimv2/Win32_LogicalDisk

Invoke:o Beavatkozáso winrm invoke StopService wmicimv2/win32_service?name=W32Time

Page 41: Konfigurációkezelés Windowson

47

WMI objektum elérése Resource URI forma:

o prefix/osztály?tulajdonság=érték

URI WMI prefix:o http://schemas.microsoft.com/wbem/wsman/1/wmi/<WmiNamespace>

URI példa:o http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt

Page 42: Konfigurációkezelés Windowson

48

Alias-ok használatawinrm help alias

wmi = http://schemas.microsoft.com/wbem/wsman/1/wmi

wmicimv2 = http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2

cimv2 = http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2

winrm = http://schemas.microsoft.com/wbem/wsman/1wsman = http://schemas.microsoft.com/wbem/wsman/1shell =

http://schemas.microsoft.com/wbem/wsman/1/windows/shell

Page 43: Konfigurációkezelés Windowson

49

WinRM felhasználása WinRM.cmd parancssori eszköz

PowerShell 2.0 Remoting

WinRM API (WSMan Automation)o pl.: VBScript, C#

XML üzenet legyártása egyéb módon

Page 44: Konfigurációkezelés Windowson

50

WinRM példa üzenet Win32_LogicalDisk WMI objektum lekérdezése

Page 45: Konfigurációkezelés Windowson

51

Biztonság Titkosítás:

o Nincs / HTTPS csatorna / XML üzenet titkosítása Hitelesítés:

o Basic / Negotiate / Kerberos … Távoli fél azonosítása

o Tanúsítvány / tartományi környezetben Kerberos Trusted hosts

Leírások:o winrm help autho winrm help configo WinRM teszt két Vista között

Page 46: Konfigurációkezelés Windowson

53

WinRM használata PowerShellből Beépített cmdletek a winrm.cmd feladataira

o Lásd: Get-Help about_wsmano Set-WSManQuickConfig, Test-WSMan, Get-WSManInstance, cd wsman:

PowerShell Remotingo parancsok/szkriptek végrehajtása távoli gépenoWinRM-et használ alulo Interaktív / batch mód (akár több gépen

párhuzamosan)

Page 47: Konfigurációkezelés Windowson

54

DEMO

Követelmény:o PowerShell 2.0, WinRM 2.0o Lásd: Get-Help about_remoting_requirements

Remoting engedélyezése: Enable-PSRemoting

Egy parancs távoli végrehajtása:Invoke-Command -ComputerName nev -ScriptBlock {…}

Távoli munkamenet:o Enter-PSSession gepnev

Lásd: Get-Help about_remoting

PowerShell remoting

Page 48: Konfigurációkezelés Windowson

55

Összefoglalás

Konfigurációs adatbázis/Konfiguráció-menedzser

Form TitleForm Title

DB ...

Kliens

lib/tool

Kliens

„Provider”„Provider”„Provider”„Provider”

Hordozóprotokoll

OperációkAdatok

CIM

MOF

WS-Management

winrm.cmd

WMI

WMI Providers

PS: Get-WmiObject

DCOM

PowerShell Remoting

Page 49: Konfigurációkezelés Windowson

56

Összefoglalás

Konfigurációkezelés Windowson:o CIM, WMI

Saját alkalmazásunk kiegészítése:oWMI provider készítése

Távoli lekérdezés, beavatkozás:oWinRM (alacsony szinten)o PowerShell 2.0 Remoting