Előbb röviden, hogy miről is van szó. Itt elérhető a fent nevezett tool. Három, külön telepíthető modulból áll: HPBIOSCmdlets, HPiLOCmdlets valamint a HPOACmdlets.
Ha feltelepítjük őket, akkor attól kezdve mind a parancssoros Powershell, mind az ISE tartalmazni fogja a *HP* parancsokat. A későbbiekben szeretnék róluk írni egy-két cikket, de most csak annyit, amennyi a tárgyban szükséges művelet elvégzéséhez szükséges.
Előbb egy változóban elmenetem az ILO-hoz szükséges belépési adatokat, majd létrehozok két tömböt.
$AdminMol=Get-Credential
$DotNetHPIloArray=New-Object System.Collections.ArrayList
$DotNetHPIlo_servernameArray=New-Object
System.Collections.ArrayList
Van egy Find-HPiLO parancs, amivel egy vagy több IP tartományban meg lehet keresni az összes iLO eszközt. A visszakapott eredményt én szűrtem, mivel vannak régebbi HP szerverek is a környezetben, de nekem azokra nem volt szükségem.
$DotNetHPIloArray=Find-HPiLO -Range IPRange1,IPrange1,IPrange3|?{$_.SPN -like "*BL460c*"}
Az IPRange1 formátuma pl. ilyen: 192.168.1.1-254
Ha megnézzük, hogy mit kaptunk, akkor ilyen az output:
Mint látható, ezekért az adatokért még nem kellett bejelentkezni.
Következő lépésben keresni kellett egy olyan Get-HPiILO kezdetű parancsot, amivel visszakapjuk a host nevet. Elég sok parancs van, de azért a parancs neve alapján könnyen megtalálható a Get-HPiLOServerName cmdlet.
De ha esetleg bizonytalanok vagyunk, akkor a legegyszerűbb az, hogy egy Start-Transcript parancs után (ami ugye file-ba írja a kiadott parancsokat és az eredményüket is) lefuttatjuk az összes Get-HPiLO* parancsot egy adott iLO kártya esetén, és utólag elemezzük, hogy melyik parancs milyen adatokat adott vissza. Persze nem egyesével, hanem pl. Excelben egy per alatt összedobható ehhez egy script.
Ha megnézzük, hogy mit ad vissza a fenti parancs, akkor láthatjuk, hogy benne van az ESXi hostunk neve.
Ezek után a fent definiált másik tömböt már könnyen fel tudjuk tölteni a szükséges adatokkal.
$DotNetHPIlo_servernameArray=$DotNetHPIloArray.IP|Get-HPiLOServerName -Credential
$AdminMol -DisableCertificateAuthentication|Select IP,Server_name
Ha pedig ez megvan, akkor már könnyű dolgunk van. Ebben a cikkben már részletesen írtam a tag-ek kezeléséről, így most abba már nem megyek vele. A lényeg, hogy előbb létre kell hozni egy tag kategóriát. Erre is megvan a szükséges parancs:
(New-TagCategory -Name "ILO_IP" -Cardinality Single -EntityType VMHost)
Ha tehát már létezik a kategória, akkor adjuk hozzá a hostokhoz a megfelelő címkét.
$hostok=get-vmhost
foreach ($h
in $hostok)
{
$hely=$DotNetHPIlo_servernameArray.server_name.IndexOf($h.name)
if ($hely -ne -1)
{
$NewTag=New-Tag -Name $DotNetHPIlo_servernameArray[$hely].Ip -Category "ILO_IP"
New-TagAssignment
-Tag $NewTag
-Entity $h
}
}
És kész is:)
Látható, hogy van egy másik címke is, de az is hasonló módon került oda, így azt már nem részletezem.