Sample/Manage_Systems.ps1
<#
Manage_Systems.ps1 - Example scripts to illustrate how to manage systems on LXCA server. Lenovo Copyright © Copyright Lenovo 2015. LIMITED AND RESTRICTED RIGHTS NOTICE: If data or software is delivered pursuant a General Services Administration “GSA” contract, use, reproduction, or disclosure is subject to restrictions set forth in Contract No. GS-35F-05925. #> # Define the variable value $LxcaUserName = "USERID" $LxcaPassword = ConvertTo-SecureString "Password" -AsPlainText –Force $LxcaIP = "10.240.197.26" $ChassisUserName = "USERID" $ChassisPassword = ConvertTo-SecureString "Password" -AsPlainText –Force $RecoveryPassword = ConvertTo-SecureString "Password" -AsPlainText –Force $ServerUserName = "USERID" $ServerPassword = ConvertTo-SecureString "Password" -AsPlainText –Force # First connect to LXCA server $Cred = New-Object System.Management.Automation.PSCredential($LxcaUserName, $LxcaPassword) Connect-LXCA $LxcaIP -Credential $Cred -SkipCertificateCheck # Manage chassis via S/N, precondition is the target chassis have been discovered by LXCA server $SNlist = "23ENY12","23ENY13","23EVN14","23EVN15" Write-Host "`nTry to manage chassis with S/N:" $SNlist $standaloneChassis = Get-LXCAChassis -Unmanaged | where { $_.SerialNumber -in $SNlist } Write-Host "`nStandalone chassis discovered by LXCA server:" $standaloneChassis | Sort-Object Name | Format-Table -Property Name,UUID,SerialNumber,IPAddresses -AutoSize $Uuids = @() foreach ($Chassis in $standaloneChassis){ $Uuids += ,@($Chassis.Uuid) } $Uuids = [string[]]$Uuids $ret = Add-LXCAManagedDevice -ChassisUuid $Uuids -UserName $ChassisUserName -Password $ChassisPassword -ChassisRecoveryPassword $RecoveryPassword Write-Host "`nManage chassis result:" $ret | Format-Table -AutoSize # Manage servers via IP address or IP range $IpRange = "10.240.195.40-10.240.195.50" Write-Host "`nTry to manage servers in IP range" $IpRange $ret = Add-LXCAManagedDevice -Ipv4Range $IpRange -UserName $ServerUserName -Password $ServerPassword Write-Host "`nManaged chassis:" $ret.ChassisManageResult | Format-Table -Wrap Write-Host "`nManaged rack server:" $ret.RackServerManageResult | Format-Table -Wrap # Manage chassis/rack server via bulk import csv # The bulk import csv template can be downloaded from web ui <# $csvPath = "C:\bulkimport.csv" Write-Host "`nTry to manage servers via file:" $csvPath $ret = Add-LXCAManagedDevice -BulkImportFile $csvPath -CurrentRackServerUserName $ServerUserName -CurrentRackServerPassword $ServerPassword Write-Host "`nManaged chassis:" $ret.ChassisManageResult | Format-Table -Wrap Write-Host "`nManaged rack server:" $ret.RackServerManageResult | Format-Table -Wrap #> <# # Power off all managed rack servers $allServers = Get-LXCARackServer Write-Host "`nAll managed rack servers" $allServers | Sort-Object Name | Format-Table -Property Name,MachineType,IPAddresses,AccessState,HealthState,PowerState -Wrap # Power off each rack server Foreach ($server in $assServers) { Invoke-LXCASystemAction -RackServerUuid $server.Uuid -RackServerAction ShutdownOSandPowerOff } # Wait 10 mins to get the result again Start-Sleep -Seconds (60*10) $allServers = Get-LXCARackServer Write-Host "`nAll managed rack servers after PowerOff:" $allServers | Sort-Object Name | Format-Table -Property Name,MachineType,IPAddresses,AccessState,HealthState,PowerState -Wrap #> # Disconnect from LXCA server Disconnect-LXCA |