In Part 1 of this series I covered the fundamentals of Cisco UCS PowerTool and how to make your first connection. In Part 2 I expand on this and now show some of the basic commands you can use against UCSM when first learning to script with PowerTool. With 4500+ commands, over 2300 just in the Cisco.UCSManager module alone it’s impossible to cover them all. The intention here is not to show you them all but rather give you an idea of what’s out there and possible.
Cisco UCS PowerTool Suite – Part 1
Cisco UCS PowerTool Suite – Part 2
Cisco UCS PowerTool Suite – Part 3
In the below examples we will be working with the Cisco.UCSManager module. We’re going to assume you’ve already made your connection to UCSM. If you’re not sure how, checkout Part 1 of this series.
Now with our connection made one of the first commands we can try is Get-UCSChassis. This simply returns a list of all our UCS chassis’ in UCSM.
PowerTool C:\> Get-UcsChassis AckProgressIndicator : ack-not-in-progress AdminState : acknowledged AssignedToDn : Association : none Availability : available ConfigState : ok ConnPath : {A, B} ConnStatus : {A, B} Discovery : complete DiscoveryStatus : A,B FabricEpDn : fabric/server/chassis-6 Id : 6 LcTs : 1970-01-01T00:00:00.000 LicGP : 0 LicState : license-ok ManagingInst : A MfgTime : not-applicable Model : UCSC-C3X60-BASE
Above is a small extract of the output that comes back to us in list format. This can be a little difficult to read if we have a few chassis’. We can clean this up a little by piping it to Format-Table and selecting our own columns.
PowerTool C:\> Get-UcsChassis | Format-Table RN, Id, Model, Availability, AdminState, Serial, ConfigState Rn Id Model Availability AdminState Serial ConfigState -- -- ----- ------------ ---------- ------ ----------- chassis-3 3 UCSB-5108-AC2 unavailable acknowledged CH29 ok chassis-4 4 UCSC-C3X60-BASE available acknowledged CH30 ok chassis-5 5 N20-C6508 unavailable acknowledged CH31 ok chassis-6 6 UCSC-C3X60-BASE available acknowledged CH32 ok
This now looks a little cleaner and provides us with information more relevant to what we might be after.
Next we can check what blades we have with Get-UCSBlade. As with the previous command we can pipe it to Format-Table and select more meaningful columns.
PowerTool C:\> Get-UcsBlade | Format-Table DN, Model, NumofCPUs, NumofCores, TotalMemory Dn Model NumOfCpus NumOfCores TotalMemory -- ----- --------- ---------- ----------- sys/chassis-3/blade-1 UCSB-EX-M4-1 2 10 49152 sys/chassis-3/blade-3 UCSB-EX-M4-1 2 10 49152 sys/chassis-3/blade-7 UCSB-EX-M4-1 4 20 49152 sys/chassis-4/blade-1 UCSC-C3X60-SVRNB 2 8 49152 sys/chassis-4/blade-2 UCSC-C3X60-SVRNB 2 8 49152 sys/chassis-5/blade-4 UCSB-B200-M4 2 8 49152 sys/chassis-5/blade-5 UCSB-B420-M4 4 16 49152 sys/chassis-6/blade-1 UCSC-C3K-M4SRB 2 8 49152
If we have rack servers added into UCSM we can list them as well with Get-UcsRackUnit. Or alternatively we can use Get-UcsServer to list both Blade and Rack servers in the one output display.
PowerTool C:\> Get-UcsServer | Format-Table AdminState, Model, operState, Serial, RN AdminState Model OperState Serial Rn ---------- ----- --------- ------ -- in-service UCSB-EX-M4-1 unassociated SRV72 blade-1 in-service UCSB-EX-M4-1 unassociated SRV73 blade-3 in-service UCSB-EX-M4-1 unassociated SRV75 blade-7 in-service UCSC-C3X60-SVRNB unassociated SRV76 blade-1 in-service UCSC-C3X60-SVRNB unassociated SRV77 blade-2 in-service UCSC-C220-M4S unassociated RK32 rack-unit-1 in-service UCSC-C240-M4S unassociated RK33 rack-unit-2 in-service UCSC-C220-M4S unassociated RK34 rack-unit-3 in-service UCSC-C220-M4L unassociated RK35 rack-unit-4 in-service UCSC-C220-M4L unassociated RK36 rack-unit-5 in-service UCSC-C240-M4SX unassociated RK37 rack-unit-6
Working with Orgs is very simple too with Get-UCSOrg. In the below example I have just one root Org with is returned.
PowerTool C:\> Get-UcsOrg Descr : Level : root Name : root PermAccess : yes Sacl : Ucs : UCSPE-10-0-30-79 Dn : org-root Rn : org-root Status : XtraProperty : {}
Creating a new Org is just a matter of changing the ‘Get’ Verb to ‘Add’ using Add-UcsOrg
PowerTool C:\> Add-UcsOrg -Name Ukoticland Descr : Level : 1 Name : Ukoticland PermAccess : no Sacl : Ucs : UCSPE-10-0-30-79 Dn : org-root/org-Ukoticland Rn : org-Ukoticland Status : created XtraProperty : {}
And you guessed it, we can remove an Org with the Remove Verb using Remove-UcsOrg
PowerTool C:\> Remove-UcsOrg -Org Ukoticland Remove-UcsOrg Are you sure you want to remove UCSPE-10-0-30-79:org-root/org-Ukoticland? [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Y Descr : Level : 1 Name : Ukoticland PermAccess : yes Sacl : Ucs : UCSPE-10-0-30-79 Dn : org-root/org-Ukoticland Rn : org-Ukoticland Status : deleted XtraProperty : {}
Working with Service Profiles is extremely easy as well. Get-UcsServiceProfile will display all service profiles. In the below example I have two.
PowerTool C:\> Get-UcsServiceProfile | Format-Table Name Name ---- Production Test
Creating an initial Service Profile is as simple as Add-UcsServiceProfile
PowerTool C:\> Add-UcsServiceProfile -Name MyFirstSP
And removing a Service Profile as simple as Remove-UcsServiceProfile
PowerTool C:\> Remove-UcsServiceProfile -ServiceProfile MyFirstSP Are you sure you want to remove UCSPE-10-0-30-79:org-root/ls-MyFirstSP? [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y ... Dn : org-root/ls-MyFirstSP Rn : ls-MyFirstSP Status : deleted XtraProperty : {}
PowerTool has the ability to perform a number of different backups using Backup-Ucs.
The most complete form is full-state. Full state creates a binary file with a snapshot of the entire system. This type of backup can then be used to perform a full system restore to the Fabric Interconnect
PowerTool C:\> Backup-Ucs -Type full-state -PathPattern 'C:\cisco\ucspe-backup.tar.gz'
The second type of backup is config-logical which backs up information like service profiles, VLANs, VSANs, pools, and policies and is saved as an XML.
PowerTool C:\> Backup-Ucs -Type config-logical -PathPattern 'c:\cisco\ucspe-config-logical.xml'
The third is config-system. This includes all system configuration settings such as usernames, roles, and locales. This is also in XML format.
PowerTool C:\> Backup-Ucs -Type config-system -PathPattern 'c:\cisco\ucspe-config-all.xml'
The last is config-all. This is a combination of config-logical and config-system and once again saved as an XML.
PowerTool C:\> Backup-Ucs -Type config-all -PathPattern 'c:\cisco\ucspe-config-all.xml'
None of the XML backups are suitable for full system restores and do not contain passwords of accounts.
Finally, XML backups can be imported back in with Import-UcsBackup.
PowerTool C:\> Import-UcsBackup -LiteralPath 'C:\cisco\ucspe-config-all.xml' -Merge
This brings us to the end of the primer on UCS PowerTool cmdlets. Everything that we covered above was just a very small taste of what’s possible with Cisco UCS PowerTool. As mentioned in the beginning the intention was to get you thinking about what’s possible. There’s a wealth of information that can be retrieved from UCS with PowerTool. It’s not really a question of what I can retrieve but how I can retrieve it.
References
Cisco UCS PowerTool Suite
Cisco UCS PowerTool Suite Communities Page
Schweet primers… Thanks for the explanation.