Konfigurációkezelés Windowson
-
Upload
leslie-hopper -
Category
Documents
-
view
37 -
download
0
description
Transcript of 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
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
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
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
5
Windows Management Instrumentation (WMI)
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…
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
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
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
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'
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
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
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
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…
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
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
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"'
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:
25
WMI felhasználása – PowerShell Egy kis segítség: PowerShell WMI Explorer
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}
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
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
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
30
Egyszerű WMI Provider C#-ban
Hosting modell
Provider neve
WMI-ból lekérdezhető tulajdonság
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
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
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!
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
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
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
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
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 …
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
40
Windows Remote Management (WinRM)
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
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
43
WinRM architektúra
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:
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
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
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
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
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
50
WinRM példa üzenet Win32_LogicalDisk WMI objektum lekérdezése
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
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)
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
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
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
57
További információ WMI
oMSDN: WMIoWMI Blog
WinRMoMSDN: Windows Remote ManagementoWindows Remote Management Command-Line Tool (
Winrm.cmd) Openwsman
o http://www.openwsman.org/