PowerShell to Automate Cisco UCSM (2): PowerGUI Editor

PowerShell to Automate Cisco UCSM (2): PowerGUI Editor

Introduction I introduced how to set up the UCSM automation lab and used PowerTool, the Cisco PowerShell module, to connect and manage UCSM (see Power

PowerShell to Automate Cisco UCSM (3): Convert UCSM GUI to Script
PowerShell to Automate Cisco UCSM (1): Lab Setup
PowerShell to Automate Cisco UCSM (4): PS with .Net to develop UI and provision service profile

Introduction

I introduced how to set up the UCSM automation lab and used PowerTool, the Cisco PowerShell module, to connect and manage UCSM (see PowerShell to Automate UCS (1): Lab Setup).

This blog is to introduce my favourite PowerShell editor, PowerGUI, which provides an intuitive graphic interface, simplifies scripting work and allows easy test and troubleshooting. Most importantly it is free!

Download PowerGUI from DELL (It is now owned by DELL): http://software.dell.com/products/powergui-freeware/

PowerGUI 3.8 is used in this lab. The lab steps are as below:

Step 1: Install PowerGUI on Windows

Nothing fancy, just follow the installation wizard and click though.
PowerGUI_Installation.png

Step 2: PowerGUI Administrative Console

After successfully install PowerGUI, two programs are installed ‘PowerGUI Administrative Console‘ and ‘PowerGUI Script Editor‘. I am not going to elaborate ‘PowerGUI Administrator Console’ in this blog. However, if you need to add a PowerShell library such as AD snap-in to manage Active Directory (get-aduser, adgroup etc. commands are unavailable if not install the library), you will need to use ‘PowerGUI Administrative Console’ as below and add through ‘File > PowerShell Libraries…’.

PowerGUI_Administrator.png

Step 3: PowerGUI Script Editor

‘PowerGUI Script Editor’ is the tool we are using to write PowerShell script. The window should be as below:

PowerGUI_Editor.png

1 – Create new script

2 – Script browser

3 – Script editing area

# starts comments, and is shown in Green in the editor.

Command is shown in Aqua such as ‘import-module’. PowerGUI also provides command hint as below. Move mouse pointer over a command, it will reveal the command syntax.

PowerGUI_AutoCommands.png

Variables are in purple. After executing the script once, variable values are shown in ‘4 Variables’, which I found useful in troubleshooting whether values are parsed as required.

4 – Variables used in script

This area shows default and user-defined variables and the value stored. Arrange is also supported in PowerShell, we will come to it in the next blog. Variable type is not normally required in PowerShell; though it can be define via [string] [int] and etc. in front of a variable. For example,the following is a string:

[string]$var = 5

$ to indicate a variable is followed; = to assign value to variable; “” to indicate string as value; while numerical value is assgined without “”. For example, the first one is a string; the second is an integer.

$password = "ucspe"
$number = 5

5 – Execute script

The result will be shown in ‘7 – Script execution result’.

6 – Script execution status

Whether the execution is completed.

7 – Script execution result

If the script completes successfully, the result will show here; if the script fails to run, debug information will show. Our result from ‘get-ucsstatus’ is as below:

Proxy :
VirtualIpv4Address : 10.1.200.230
HaConfiguration : cluster
HaReadiness : ready
HaReady : yes
EthernetState : full
ChassisSerial1 : CH1
ChassisSerial2 : CH2
ChassisSerial3 : RK1
Chassis1Status : ok
Chassis2Status : ok
Chassis3Status : ok
FiALeadership : primary
FiAManagementServicesState : up
FiAOobIpv4Address : 10.1.200.231
FiAOobIpv4DefaultGateway : 10.1.200.1
FiAOobIpv4SubnetMask : 255.255.255.0
FiBLeadership : subordinate
FiBManagementServicesState : up
FiBOobIpv4Address : 10.1.200.232
FiBOobIpv4DefaultGateway : 10.1.200.1
FiBOobIpv4SubnetMask : 255.255.255.0

We can also select certain attribute instead of retrieve everything using ‘get-ucsstatus’. We now change the command to:

get-ucsstatus | select VirtualIpv4Address

The result will be as below:

VirtualIpv4Address : 10.1.200.230

Is it similar to SQL syntax? Yes, and PowerShell support ‘where’ to define condition as well!

Today’s PowerTool Script

Today’s full script is as below:

#clear screen.
clear

#Import Cisco UCS PowerTool module into PowerShell.
Import-Module CiscoUcsPS

#Define variables.
$ucsvip= "10.1.200.230"

#Auto logon UCSM, credentials are not manually input into the pop-up window anymore (see PowerShell to Automate UCS (1): Lab Setup).
$user = "ucspe"
$password = "ucspe" | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object system.Management.Automation.PSCredential ($user,$password)
Connect-Ucs $ucsvip -Credential $cred

#Retrieve the current UCS stauts to verify the logon was successful.
get-ucsstatus

#Disconnect the connection to UCSM.
Disconnect-Ucs

To be continued

In today’s lab, PowerGUI is used as PowerShell editor to write and test scripts. The script connects to the UCSM built in PowerShell to Automate UCS (1): Lab Setup and retrieves UCSM status.

Future blogs will introduce more useful scripts and tricks.

Learning by doing; doing by learning…reading and thinking alone won’t make fast learner, that’s why I am writing these lab blogs.

Next: PowerShell to Automate UCS (3): Convert UCSM GUI to Script

automation_thinking.png

COMMENTS

WORDPRESS: 6
  • comment-avatar

    […] ← Multi-VRF DMVPN with NHS Cluster and IPSec IKEv1 PowerShell to Automate UCS (2): PowerGUI Editor → […]

  • comment-avatar

    […] ← Multi-VRF DMVPN with NHS Cluster and IPSec IKEv1 PowerShell to Automate UCS (2): PowerGUI Editor → […]

  • comment-avatar

    […] ← PowerShell to Automate UCS (2): PowerGUI Editor […]

  • comment-avatar

    […] PowerShell to Automate UCS (2): PowerGUI Editor introduced how to use PowerGUI as PowerShell script editor to simplify script development test; and also script example. […]

  • comment-avatar
    Alex 3 months

    Hi, could you recommend a book for studying Cisco Voice?

    • comment-avatar

      Hi Alex, thanks for the contact. You may start from video tutorial, for example, https://www.youtube.com/watch?v=oK15TGfdezM&list=PL6320ACD114547C96

      Cisco also provides ready-to-use labs on dCloud, if you have access. Theory + Practice is critical.

      Alternatively, you can build labs on your laptop, home PC or any server. I plan to write some labs on this topic soon, as we have a few voice projects in the pipeline and gonna train our staff 🙂

  • DISQUS: 0