52
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

Konfigurációkezelés Windowson

Embed Size (px)

DESCRIPTION

Intelligens rendszerfelügyelet. Konfigurációkezelés Windowson. Micskei Zoltán http://mit.bme.hu/~micskeiz. Previously. Modellezés Felhasználó kezelés Konfiguráció kezelés Konfiguráció kezelés alapok Konfiguráció kezelés Windowson Konfiguráció kezelés CMDB. - PowerPoint PPT Presentation

Citation preview

Page 1: Konfigurációkezelés Windowson

Budapesti 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

Previously.. Modellezés

Felhasználó kezelés

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

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

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

Windows Management Instrumentation (WMI)

Page 6: Konfigurációkezelés Windowson

WMI felhasználói szemszögből egy CIM Object Manager a Windows platformra

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

A modern Windowsokon elérhetőo Rendszermenedzsment alapja

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

Page 7: Konfigurációkezelés Windowson

WMI kipróbálása WMIC: WMI command-line Egyszerű parancssoros WMI felület CIM elfedése alias-ok segítségével

Háttérben: Win32_Processor CIM osztály példányainak lekérdezése

Page 8: Konfigurációkezelés Windowson

WMI - Tipikus feladatok HW és SW elemek lekérdezése

o BIOS verziószáma, memóriamodulok, telepített alkalmazások...

Page 9: Konfigurációkezelés Windowson

WMI – Tipikus feladatok Beavatkozás:

Távoli lekérdezés/beavatkozás:

Page 10: Konfigurációkezelés Windowson

DEMO

Aliasok kilistázása: wmic /? Mit lehet kezdeni egy aliassal:

owmic logicaldisk /?owmic os list full

Milyen paramétere van az adott műveletnek:owmic logicaldisk get /?:FULL

Exportálás owmic logicaldisk get /format /?owmic logicaldisk get /format:rawxml > disks.xml

Ismerkedés a WMIC-kel

Page 11: Konfigurációkezelés Windowson

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)

Page 12: Konfigurációkezelés Windowson

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

Win32

• 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

directory\ldap

• ds_person• ds_group

Microsoft\SqlServer

• SqlService• ServerSettings

IntelNIC

• IANet_EthernetAdapter

Page 13: Konfigurációkezelés Windowson

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 14: Konfigurációkezelés Windowson

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 15: Konfigurációkezelés Windowson

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 16: Konfigurációkezelés Windowson

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 17: Konfigurációkezelés Windowson

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

o Pl.: wmic 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 18: Konfigurációkezelés Windowson

WMI felhasználása – VBScript Példa: nem működő eszközök lekérdezésestrComputer = "."Set objWMIService = GetObject(_ "winmgmts:\\" & strComputer & "\root\cimv2")Set colItems = objWMIService.ExecQuery _ ("Select * from Win32_PnPEntity " _ & "WHERE ConfigManagerErrorCode <> 0")

For Each objItem in colItemsWscript.Echo "Name: " & objItem.Name

Wscript.Echo "PNP Device ID: " & objItem.PNPDeviceID Wscript.Echo "Service: " & objItem.ServiceNext

Helyi gép WMI szolgáltatása

WQL lekérdezés végrehajtása

Eredményhalmaz feldolgozása

Page 19: Konfigurációkezelés Windowson

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 20: Konfigurációkezelés Windowson

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 21: Konfigurációkezelés Windowson

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

Eredmények szűrése:oWQL kifejezés átadása a –query paraméterbeno vagy: PowerShell cmdletek használata

Példa: keressük meg a memóriával kapcsolatos CIM objektumokat

Page 22: Konfigurációkezelés Windowson

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

Page 23: Konfigurációkezelés Windowson

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 24: Konfigurációkezelés Windowson

WMI fejlesztői szemszögből Bizonyos feladatokat a CIMOM-nak

mindenképpen delegálnia kelloMetó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 Szintén az IWbemServices-t implementáló COM

kiszolgálók• Meglehetősen bonyolult implementáció

o Alternatíva: .NET System.Management névtér

Page 25: Konfigurációkezelés Windowson

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

Page 26: Konfigurációkezelés Windowson

Egyszerű WMI Provider C#-ban

Forrás: http://www.codeguru.com/csharp/csharp/cs_network/wmi/article.php/c6035

Page 27: Konfigurációkezelés Windowson

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.0.0 (2008. 02. 12.)Cél: Webszolgáltatás alapú protokoll rendszerek

menedzseléséhez

Page 28: Konfigurációkezelés Windowson

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 29: Konfigurációkezelés Windowson

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 30: Konfigurációkezelés Windowson

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 31: Konfigurációkezelés Windowson

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 32: Konfigurációkezelés Windowson

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 33: Konfigurációkezelés Windowson

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 34: Konfigurációkezelés Windowson

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 35: Konfigurációkezelés Windowson

DEMO

Kliens: Windows Vista, WinRM Szolgáltatás: ESX

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

VMware API leírás

ESX lekérdezése WinRM-ből

Page 36: Konfigurációkezelés Windowson

Windows Remote Management (WinRM)

Page 37: Konfigurációkezelés Windowson

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

WS-Management implementáció

Elérhetőség:oWindows Vista, Windows Server 2008: gyárilago XP, Windows Server 2003 R2: külön telepíthető (csak

az 1.0!)

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

Page 38: Konfigurációkezelés Windowson

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 39: Konfigurációkezelés Windowson

WinRM architektúra

Page 40: Konfigurációkezelés Windowson

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 41: Konfigurációkezelés Windowson

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 42: Konfigurációkezelés Windowson

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 43: Konfigurációkezelés Windowson

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 44: Konfigurációkezelés Windowson

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 45: Konfigurációkezelés Windowson

WinRM felhasználása

WinRM parancssori eszköz

WinRM scripting APIo pl.: VBScript, PowerShell 2.0 Remoting

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

Page 46: Konfigurációkezelés Windowson

WinRM felhasználása: VBScript

Page 47: Konfigurációkezelés Windowson

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

Page 48: Konfigurációkezelés Windowson

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

winrm help auth winrm help config

Page 49: Konfigurációkezelés Windowson

DEMO WinRM beállítások

o winrm get winrm/config WinRM lekérdezés tartományi gépek között

o winrm get wmicimv2/Win32_Processor -r:sicilyo winrm enum wmicimv2/Win32_Processor -r:sicily

WinRM és openwsman:o Basic hitelesítés, cimv2 séma használatao Linux -> Windows:

• wsman identify -h florence --port 80 --auth basic• wsman -h florence --port 80 --auth basic enumerate

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

o Windows -> Linux:• Linuxon: openwsmand –d• Windows: winrm id -r:http://naples:8889/wsman -auth:basic -u:root

WinRM

Page 50: Konfigurációkezelés Windowson

DEMO

Követelmény:o PowerShell 2.0 CTP3oWinRM 2.0 CTP3

Egy parancs távoli végrehajtása:o -ComputerName paraméter

Távoli munkamenet:o Enter-PSSession gepnev

PowerShell remoting

Page 51: Konfigurációkezelés Windowson

Windows Remote Shell (WinRS) Távoli parancsvégrehajtás

Csak nem interaktív parancsokra, deo Trükk: winrm –r:192.168.127.140 cmdo Parancssor a távoli gépre