2017. január 20., péntek

Egy kis PowerCLI - Címkék (Tags) használta a get-vm parancsban

Ha már a virtuális gépeinknek vannak címkéi, akkor érdekes lehet az is, hogy miként lehet ezeket használni PowerCLI lekérdezésékben. Címkéket gyárthatunk manuálisan, de ahogy itt olvashatjátok, akár egy meglévő CMDB adatbázisból is feltölthetjük.

Két módszer röviden.

Get-Vm parancs -Tag paraméterének használata

Ha a -Tag paraméter után megadunk egy szöveget, akkor azokat a virtuális gépeket fogja kilistázni, amelyeken valamelyik címke tartalmazza a megadott sztringet (* is használható). Ez is lehet hasznos, ha valamelyik címke jól meghatározott értékeket tartalmaz. Pl. nekünk van egy Patch fázisra vonatkozó címkénk, és ha arra vagyok kíváncsi, hogy melyik gépek tartoznak egy megadott fázisba, akkor csupán ennyi a dolgom:

get-vm -Tag "E1AA" 

Viszont ha az "E1AA" sztring véletlenül szerepel egy másfajta mezőben is, akkor már gond van.


Get-Vm és Get-TagAssignment együttes használata

Ez egy kicsit bonyolultabb, de itt már pontosabban szűkíthetjük a lekérdezéseket.

Get-VM | Select Name,@{N="PatchPhase";E={((Get-TagAssignment -Category PatchPhase -Entity $_ | select -ExpandProperty Tag).Name)}}|?{$_.PatchPhase -eq "E1AA"}


Előbb lekérdezzük az összes gépet, meghatározzuk a PatchPhase értékeket, majd végül szűrünk az "E1AA" értékre. A Select parancs második tagja egy ún. Calculated Property, amely a Property Name-ből (N=) ill. egy property expression-ből (E=) áll.

Ha több címkét is akarunk használni a lekérdezésben, akkor az előbbihez hasonlóan azokra is képezni kell egy-egy property-t. Pl. a következő lekérdezés (az egész egy sor) megadja az összes olyan gépet, aminek a Patch fázisa E1AA, és a szerver gazdája Kovács János.

Get-VM | Select Name,@{N="PatchPhase";E={((Get-TagAssignment -Category PatchPhase -Entity $_ | select -ExpandProperty Tag).Name)}},
@{N="Szervergazda";E={((Get-TagAssignment -Category Szervergazda -Entity $_ | select -ExpandProperty Tag).Name)}}|?{$_.PatchPhase -eq "E1AA" -and $_.Szervergazda -eq "Kovács János"}

Fura mód a Web kliensben a keresésben ezeket a címkéket még nem lehet normálisan használni.Vagy csak én nem találtam még meg.



2017. január 17., kedd

NMON Visualizer

Többször előfordult már, hogy az esxtop által gyűjtött adatokat jó lett volna megjeleníteni grafikus módon. Erre persze a perfmon.exe is használható, de azért sok tekintetben eléggé körülményes, és nem túl felhasználóbarát.

A címben említett NMON Visualizer az IBM egyik belső fejlesztése, amit 2013-ban nyilvánossá tettek. Nem kifejezetten ilyen adatok megjelenítésére fejlesztették, de erre is jó. A támogatott formátumokat megtaláljátok a linken.

A használata nagyon egyszerű. Le kell tölteni a fenti linkről a  NMONVisualizer_2016-02-29.jar file-t, és futtatni. Az esxtop használatával kapott .csv file-t be kell tölteni, és utána már lehet is nézegetni az adatokat.

Előbb pár szó az esxtop használatáról. Csupán egyetlen dolog, hiszen mindenki ismeri. Ha elindítjuk a default beállításokkal batch módban, akkor látható módon igen rövid idő alatt igen sok adat képződik. Ha szeretnénk egy kicsit csökkenti az adatmennyiséget, akkor két dolgot tehetünk. Egyrészt növelhetjük a mintavételek közti időt (-d kapcsoló), vagy pedig az esxtop-ot elindítva interaktív módban, az egyes kategóriáknál az "F" használatával elvesszük a nem szükséges mezőket. Ha összeállt úgy, ahogy nekünk elégséges, azaz minden felesleges adat megjelenítését kikapcsoltuk, akkor az aktuális beállításból készíteni kell egy új konfig file-t (W), és a batch módú futtatásnál ezt a konfig file-t is megadjuk. Pl.

esxtop  -b  -n infinity -c ./alap1 > /vmfs/volumes/57fe4a2e-21a0072a-c0dc-e41f132e8b64/CD_IMAGES/55_alap1.csv

A fenti parancs az alap1 nevű konfig file-t használja, és addig fut, amíg manuálisan le nem állítjuk. A nagy méretű keletkező file miatt érdemes egy datastore-ra irányítani az output-ot.

Ha a fenti módon előálltak az adatok (akár több hostról is), akkor indítsuk el az NMON Visualizer-t, és töltsük be a .csv file-t, vagy file-okat (mivel akár többet is tud kezelni egy időben)


Ezután egy kevés időt eltöltve fel lehet fedezni, mit is tud ez az alkalmazás. De azért röviden a legfontosabbak:

A baloldalon a fában le tudunk menni az egyes értékekig, de a legalsó "csomópontra" kattintva egyszerre megjeleníti az alatta lévő értékeket. Pl.


Képes .png formátumban lementeni az aktuális képet, illetve a képet alkotó adatsorokat is kinyerhetjük.

Automatikusan meghatározza az adatpontok sűrűségét (mérések száma alapján), de fixen meg is adhatjuk (View/Set Granurality...)

A teljes mérési intervallumot felszabdalhatjuk kisebb időszakokra, így azokat külön is meg tudjuk nézni. Sőt, ezek az intervallumokat le tudjuk menteni, így később egyszerűen betölthető, nem kell újra létrehozni. Pl.



Akár táblázatos formában is megjeleníthetjük az adatokat.


És persze a diagram megjelenítési módját is szabályozhatjuk.

Összefoglalva, egy telepítést sem igénylő pár megabyte-os alkalmazásról van szó, amivel egyszerűen megjeleníthetjük az esxtop eredményét.





2017. január 12., csütörtök

vmware tools 10.1 és 10.0.12

2015 őszétől kezdve a VMware külön letölthetővé tette a VMware Tools-t. Ezáltal az ESXi verziók és a VMware Tools verziók külön életet kezdtek el élni. Azaz anélkül, hogy ESXi patch jönne ki, ha szükséges, új VMware Tools csomagok jelenhetnek. Ennek persze van előnye , de van hátránya is. Hátrány pl. az, hogy ezentúl hiába tartjuk az ESXi-t a legfrissebb állapotban, egyáltalán nem biztos, hogy a róla elérhető Tools is a legújabb. Sőt, inkább az a biztos, hogy nem.

A másik változás, hogy különválasztotta a mostani operációs rendszerekhez és a régi, már nem támogatott operációs rendszerekhez tartozó Tools verziókat a VMware. Ez elég friss dolog, októberben vált elérhetővé ez a fajta konstrukció. Ennek megint csak lehet értelme, de a számozást egy kicsit átgondolhatták volna. Az lenne a logikus, hogy pl. a 10.0.6-nak a 10.0.12 a frissítése lenne. Pedig nem. Pontosabban régi operációs rendszerek esetében igen, újak esetében nem. A 10.0.12 annak a Tools-nak a verziója, amit a régi operációs rendszerekhez használhatunk. A 10.1 viszont frissíti a 10.0.6-ot újabb rendszerek esetében. . Lehet, hogy csak nekem tűnik zavarosnak? Persze meg lehet magyarázni. A 10.0.x a továbbiakban mindig a régi rendszerekhez lesz használható (bár itt nagy fejlesztésekre nyilván nem kell gondolni), A 10.1.x  pedig az aktuális operációs rendszerekre lesz telepíthető.

A harmadik változás, hogy most már külön Release Notes készül mindkét féle kiadáshoz. Ha máshonnan nem, onnan lehet tudni, hogy mihez mi való. Release Notes 10.0.12 és Release Notes 10.1.0. Az előző bekezdésben emlegetett régebbi és új operációs rendszerek fogalma is értelmet nyer, ha elolvassuk a két dokumentumot.

A fentiek miatt borul a szokásos Tools telepítés is.  Mivel alapállapotban a Tools aktuális verzióját az ESXi-n lévő productLocker linken lévő verzióhoz hasonlítja a rendszer. Természetesen megtehetjük, hogy minden ESXi szerveren a megfelelő helyre felmásoljuk a letöltött és kicsomagolt Tools-t, de ez sok host esetében igen macerás lenne, és minden egyes újabb verzió esetében újra végig kellene csinálni.

E helyett a következő módon járhatunk el.

  • Hozzunk létre egy minden host által látható datastore-on egy mappa struktúrát. (ha követni akarjuk az eddigi felállást, akkor packages/6.0.0
  • Ebbe másoljuk bele a kicsomagolt Tools-t (floppies és vmtools almappák)
  • A vsphere kliensben minden hoston módosítsuk a UserVars.ProductLockerLocation beállítást úgy, hogy az új, közös elérésű helyre mutasson
  • SSH-ne belépve a hostokra a productLocker linket szintén változtassuk meg úgy, hogy az új helyre mutasson. (vagy egy host restart is megteszi)

Persze ha fentieket 100 hoston kell megcsinálni, akkor megint csak nem egyszerű a feladat. Viszont erre találták ki a PowerCLI-t :)

Szokásomhoz híven nem egy szépen kidolgozott scriptet mutatok, hanem csak egyszerűen azt, hogy mit kell tartalmaznia ahhoz, hogy a fenti beállításokat számunka megcsinálja.

$command="c:\powershell\pL.txt" #pL.txt tartalmazza a hoston futattandó parancsokat
$user = "root"
$pw="tikosjelszo"

$host1=get-vmhost host1

$remoteserver=$user+"@"+$host1.Name

get-advancedsetting -Entity $host1 -Name "UserVars.ProductLockerLocation"|set-advancedsetting -Value "/vmfs/volumes/57fe4a2e-21a0072a-c0dc-e41f132e8b64/packages/6.0.0" -Confirm:$false #megváltoztatjuk, hogy az új helyre mutasson

$host1|get-vmhostservice| Where { $_.Key -eq "TSM-SSH"}|start-vmhostservice #engedélyezzük az SSH-t


write-output "yes"|c:\powershell\plink.exe -ssh $remoteserver -pw $pw -m $command #lefuttajuk a pL.txt-ben lévő parancsokat. 

A pL.txt-ben a következő két parancs van:

rm /productLocker
ln -s /vmfs/volumes/57fe4a2e-21a0072a-c0dc-e41f132e8b64/packages/6.0.0 /productLocker

Azaz töröljük a meglévő linket, majd újra létrehozzuk úgy, hogy a megosztott helyre mutasson. Mindezt pedig a plink.exe parancssori alkalmazással használatával érjük el.

Ha a fenti script köré írunk valamilyen ciklust, ami végigmegy a hostokon, akkor már készen is vagyunk.

Ha ezek után megnézzük a virtuális gépeink állapotát, akkor semmilyen változást nem fogunk észrevenni, mivel az ellenőrzés akkor történik meg, amikor bekapcsolunk egy gépet, vMotion-nel elmozgatunk egy gépet, vagy pedig a gépen belül a vmtools szervizt újraindítjuk. Ekkor már az adott gép esetében csak akkor fogjuk azt látni, hogy a legfrissebb tools van rajta, ha valóban az van rajta, ami a közös elérésű datastore-on van. (Ez egyébként a 10.1-es esetében a 10272-őt jelenti)

És persze ezek után már a szokásos módokon mehet a vmwere tools frissítés (kliensből, PowerCLI segítségével, stb)

Remélem segítettem a fentiekkel!