on 11-07-2013 02:45 PM - edited on 10-11-2018 05:13 AM by dsoper
We are pleased to announce the release of Cisco UCS PowerTool Suite version 2.4.1.
Cisco UCS PowerTool suite is a set of PowerShell modules for Cisco UCS Manager, Cisco IMC and Cisco UCS Central that helps in configuration and management of Cisco UCS domains and solutions.
Key Features in Release 2.4.1
Key Features in Release 2.3.1
Key Features in Release 2.2.1
Installer download (from cisco.com):
Module download (from Powershell Gallery):
https://www.powershellgallery.com/packages/Cisco.UCSManager/2.4.1.3
https://www.powershellgallery.com/packages/Cisco.IMC/2.4.1.3
https://www.powershellgallery.com/packages/Cisco.UCSCentral/2.4.1.3
https://www.powershellgallery.com/packages/Cisco.UCS.DesiredStateConfiguration/2.4.1.3
Documentation:
Reference: Cisco UCS PowerTool Command Reference for Cisco UCS Manager
External customers - For any queries/feedback on PowerTool, contact Cisco TAC or ucs-powertool@cisco.com or add a discussion to the Cisco Developed Integrations sub-space on Cisco UCS Communities
We are also on Slack - slack requires registration, but the cisco-ucs-powertool channel on powershell team is open invitation to anyone to register here. Once you join the powershell slack team you can join cisco-ucs-powertool channel here
Internal (Cisco) customers and employees - Contact us at ucs-powertool@cisco.com for support questions and ask-ucs-tme@cisco.com or ask-ucs-pm@cisco.com for roadmap questions and feedback.
Hi Cheryl,
Upon second look, this functionality is available via the adminPower attribute. I missed it in my review of the In Schema yesterday - but you can initiate a reboot using either the XML API or PowerTool.
With PowerTool you can use the 'Set-ImcRackUnit' Cmdlet:
Set-ImcRackUnit -AdminPower bmc-reset-immediate
Cheers!
Jeff
Hello,
Here is an easy one that could get easily fixed in future version of UCSM PowerCli :
$Requested_VLAN = Add-UcsVlan -Name $newPG -Id $newVlanID -LanCloud $LanCloud
I am trying to hide out the output of this command but it does not work.
Could the result of this command not get printed on screen when storing result to a variable ? This would greatly clear out the screen output.
Thanks
Hi Thomas,
I have tried above and result of command will not print on screen when you store result in a variable.
S C:\> $LanCloud = Get-UcsLanCloud
PS C:\> $newPG = "testVlan"
PS C:\> $newVlanID = "65"
PS C:\> $Requested_VLAN = Add-UcsVlan -Name $newPG -Id $newVlanID -LanCloud $LanCloud
PS C:\>
PS C:\> $Requested_VLAN
AssocPrimaryVlanState : ok
AssocPrimaryVlanSwitchId : NONE
Cloud : ethlan
CompressionType : included
ConfigIssues :
DefaultNet : no
EpDn :
Global : 0
Id : 65
IfRole : network
IfType : virtual
Local : 0
Locale : external
McastPolicyName :
Name : testVlan
OperMcastPolicyName :
OperState : ok
OverlapStateForA : ok
OverlapStateForB : ok
PeerDn :
PolicyOwner : local
PubNwDn :
PubNwId : 1
PubNwName :
Sacl :
Sharing : none
SwitchId : dual
Transport : ether
Type : lan
Dn : fabric/lan/net-testVlan
Rn : net-testVlan
Status : created
XtraProperty : {}
Ucs : ****-******
Let me know if I am missing something or you have different question.
Thank you,
Nitin
Any chance you guys are going to do a better job getting your UCS Central CMDLETs to support pipelining?
Most people would expect this to work:
$blade | get-UcsCentralEquipmentLocatorLedOperation | set-UcsCentralEquipmentLocatorLedOperation -AdminState on -force
but I have to do something like this:
$bladeLocatorDn = "$($blade.dn)/locator-led/remote-oper"
get-UcsCentralEquipmentLocatorLedOperation -dn $bladeLocatorDn | set-UcsCentralEquipmentLocatorLedOperation -AdminState on -force
Ben
Hi Ben,
You are missing parent of EquipmentLocatorLedOperation . Try below and it should work for you.
PowerTool C:\> Get-UcsCentralBlade -SlotId 2| Get-UcsCentralLocatorLed | Get-UcsCentralEquipmentLocatorLedOperation | Set-UcsCentralEquipmentLocatorLedOperation -AdminState on -Force
AdminState : on
LastModified : 1970-01-01T05:30:00.000
RemoteErrorCode : 0
RemoteErrorDescr :
TriggerStatus : unknown
Dn : compute/sys-1008/chassis-1/blade-2/locator-led/remote-oper
Rn : remote-oper
Status : modified
XtraProperty : {}
UcsCentral : XXXX
A good way to learn cmdlet meta hierarchy is to use below cmdlet.
PS C:\> Get-UcsCentralCmdletMeta -ClassId EquipmentLocatorLedOperation -Tree
EquipmentLocatorLed (UcsCentralLocatorLed) (Get, Set)
|-EquipmentLocatorLedOperation (UcsCentralEquipmentLocatorLedOperation) (Get, Set
|-FaultInst (UcsCentralFault) (Get)
Hope above helps.
Do let us know if you have any additional questions.
Thank you,
Nitin
Hi,
I tried this with another cmdlet
PowerTool C:\> $blade | Get-UcsCentralStorageLocalDisk
>>> Doesn't work, I will use CmdletMeta to find the proper class below...
PowerTool C:\>
PowerTool C:\>
PowerTool C:\> Get-UcsCentralCmdletMeta -class StorageLocalDisk -tree
StorageController (UcsCentralStorageController) (Get)
|-StorageLocalDisk (UcsCentralStorageLocalDisk) (Get)
PowerTool C:\>
PowerTool C:\>
PowerTool C:\> $blade | Get-UcsCentralStorageController
>>> Doesn't work because this CMDLET does not support pipelining
PowerTool C:\>
PowerTool C:\> $blade.dn
compute/sys-1007/chassis-1/blade-1
PowerTool C:\> $storageControllerDn = $blade.dn+"/board/storage-SAS-1"
>>> I have to tack this on to match the storagecontroller DN
PowerTool C:\> Get-UcsCentralStorageController -dn $storageControllerDn
>>> This works.
So, I have learned to use Get-UcsCentralCmdletMeta and that is good. But the pipelining support is not very good (my original complaint). Is there a way to reduce the amount of work and trial and error?
Ben
Ben,
It is
PowerTool C:\> get-ucscentralblade | Get-UcsCentralComputeBoard | Get-UcsCentralStorageController |
Get-UcsCentralStorageLocalDisk
"..../blade-1/board/storage-SAS-1"
in the above DN, blade-1 corresponds to the ComputeBlade MO, board corresponds to the ComputeBoard, storage-SAS-1 is for the StorageController. So the DN should convey the level of pipeline required.
Hope this helps.
BTW, did you try the convertto cmdlet in ucs central powertool? Agree that its not very straightforward but I suggest you trying it .Please refer the release notes for the steps to enable GUI logs. Once enabled, you can run the convertto cmdlet on the same machine which will convert the GUI actions into cmdlets.
Cisco UCS Central PowerTool, Release 0.9.x User Guide - Cisco
Thanks, I neglected to use CmdletMeta on UcsCentralStorageController.
When I map it out with CmdletMeta it's clear that I need to use class UcsCentralComputeBoard and class UcsCentralComputeBoard accepts UcsCentralBlade.
Ben
Another CmdletMeta question,
This works: Get-UcsCentralCmdletMeta -Tree -ClassId StorageLocalDisk
This does not: Get-UcsCentralCmdletMeta -Tree -ClassId ServerPower
So it's hard to figure out how to use pipelining to do something like this:
$blade | Get-UcsCentralServerPower
It seems not all CMDLETs honor Get-UcsCentralCmdletMeta but that is not what is happening....
So I dig around some more, I this should work but it does not:
Get-UcsCentralCmdletMeta -Tree -ClassId ServiceProfile
So I try Get-UcsCentralCmdletMeta -Tree -Noun UcsCentralServiceProfile and that works and I see the classID is 'LsServer' I also happen to see that noun UcsCentralServerPower maps to LsPower classID.
Then I see that I can do something like this:
Get-UcsCentralServiceProfile -Dn $blade.AssignedToDn | Get-UcsCentralServerPower
So, is the rule of thumb to always use the Noun and not the ClassID? After going through all this I think the answer is obviously yes and this thread is a good reference for Google search :-)
Ben
Yup, so that's the trick to easily map the CMDLET to the ClassId:
PS E:\> Get-UcsCentralCmdletMeta | ? {$_.Noun -eq 'UcsCentralServerPower' }
ClassId : LsPower
Noun : UcsCentralServerPower
Verb : Get, Set
PipelineClassId : {ComputeInstance, LsServer}
LimitScopePipelineClassId : {}
Provider : {}
DefaultProvider :
MoMeta : Cisco.UcsCentral.UcsMoMeta
Thanks,
Ben
Hello,
In Ucs Central, I'm trying to find all local service profiles (not UCS Central managed) that are in pending reboot - due to FW update, for example.
The UCSM equivalent is : Get-UcsServiceProfile -OperState pending-reboot
But this is slow, as we have to connect to every single UCS.
almost all of the UCS are connected (linked or managed) to UCS Central, so why not using UCS Central ?
Unfortunately, while using powershell commands, I wasn't able to retrieve this information.
I tried using the following :
$UcscCS = Get-UcsCentralComputeSystem | ? { $_.name -like "aer01-dcm01n-ucs02" }
$UcsBlades = Get-UcsCentralBlade | ? { $_.dn -like ($UCSCS.dn + "/*")}
But then I am unable get the command which would get me the needed information.
I tried getting it through the Firmware cmd but this led me nowhere as I would need to know which FW should the Service Profile have.
Using the GUI, and browsing inside
server > Local Service Profile > opening properties of a local service profile > I can see that it is possible to retrieve pending reboot state.
But get-ucscentralserviceprofile won't allow me to show local service profiles, only Managed SP (unless I missed a switch or statement somewhere)
Is there any way to retrieve pending-reboot state for a "linked" / local service profile ?
Thanks
Hi Thomas,
In UcsCentral PowerTool, Global Service Profiles are accessed with Get-UcsCentralServiceProfile cmdlet and Local Service Profiles are accessed using “Get-UcsCentralComputeInstance” cmdlet.
For your case you can try cmdlet: “Get-UcsCentralComputeInstance -OperState pending-reboot”.
Please let us know if you have any more queries.
Thanks,
Vinay Ravish
Vinay,
Can you post the API reference for UCS Central? It seems that using UCSC PowerTool is a trial and error operation as shown from the Get-UcsCentralComputeInstance example.
Ben
Hi Ben,
Unfortunately, we do not have one right now. We understand your problem. We will discuss and see how it can be addressed asap.
-Ravikumar
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: