on 08-04-2015 10:11 AM
Important Note:
Minimum UCS Director version is 5.3.
Minimum Nimble array version is 2.3.
Introduction:
In order to address some of the limitations with the original Nimble plug-in for UCS Director ( Lack of rollback, no inventory, etc…), I have developed a library of workflows, workflow tasks and script modules that communicate directly with the new RESTful API available in Nimble software version 2.3 and beyond.
A brief description of the new functionality that I have provided, along with the structure of my work is detailed in the following text. The workflows themselves are attached to this post for your availability.
Firstly, a demonstration of the workflow tasks in action.
Example catalogue items:
UCS Director service end user logs in and requests a new Nimble volume. Notice how the user can select from a dynamically created list of values for the performance policy:
For this example, the user chooses the ‘Exchange 2007 data store’ performance policy and decides that the volume should be encrypted and pinned in the cache:
The volume gets successfully created:
and the service request log (As viewed by an admin) confirms this:
[INFORMATIONAL] MAIN(): Successfully created volume myExchangeVolume001.
If checked via the Nimble native GUI, it can be seen that the volume has been created, that it employs the appropriate performance policy and is both encrypted and pinned:
As soon as the volume has been created, the list of values (LOVs) for the volumes inventory is immediately updated in order to allow further operations to be processed against it. For example, let’s take the newly created volume and associates it with a volume collection. Notice in this next workflow, how both the volume and volume collection information is supplied dynamically and that no manual typing is required.
Once again, this completes successfully.
The Nimble native GUI reflects this change in the volume information.
Now, let’s add a few snapshots to the newly created volume. To make things interesting, we’ll add a mixture of snapshots that are online, offline and writable. This will show the intelligence of the ‘Delete Volume’ task that will be shown later.
As before, these changes are all reflected correctly within the native Nimble GUI:
At this point, we can show the power of UCS Director. Next, I am going to roll back the original ‘Create Volume’ workflow task. Were you to remove this manually via the Nimble GUI, then the online snapshots would all need to be taken offline, the volume would need to be disassociated from its volume collection and the volume itself would also need to be taken offline before being deleted. UCS Director can manage this in a smooth single step. Like so:
The service end user selects the ‘Create Volume’ service request and chooses for it to be rolled back.
What appears to be a simple ‘Delete Volume’ operation actually takes quite a lot into account:
An examination of the service request log (As admin) shows exactly what is going on:
[INFORMATIONAL] MAIN(): Found volume myExchangeVolume001
[INFORMATIONAL] MAIN(): Volume myExchangeVolume001 has 2 online snapshots.
[INFORMATIONAL] MAIN(): Taking snapshot mySnap1 offline.
[INFORMATIONAL] MAIN(): Snapshot mySnap1 taken offline successfully.
[INFORMATIONAL] MAIN(): Taking snapshot mySnap3 offline.
[INFORMATIONAL] MAIN(): Snapshot mySnap3 taken offline successfully.
[INFORMATIONAL] MAIN(): Volume myExchangeVolume001 is online. Taking offline.
[INFORMATIONAL] MAIN(): Volume myExchangeVolume001 successfully taken offline.
[INFORMATIONAL] MAIN(): Volume myExchangeVolume001 is protected. Disassociating...
[INFORMATIONAL] MAIN(): Successfully unassociated volume myExchangeVolume001 from volume collection.
[INFORMATIONAL] MAIN(): Successfully deleted volume myExchangeVolume001.
Other tasks are included in the attached library to enable operations such as adding volumes to volume collections, adding initiator groups, adding initiators to initiator groups as well as mapping volumes to initiator groups.
Should you be interested in understanding how this functionality is implemented, please import the attached workflow file and examine the following locations:
Workflows:
With regards to the ‘NimbleREST_Nimble_Inventory_Service’ custom workflow task above, I have it configured as a scheduled task that runs every 5 minutes. This ensures that the LOVs are kept up to date in the event of infrastructure being configured outside of UCS Director (Via the Nimble GUI for example).
Custom Workflow Tasks:
Script Modules:
For any questions regarding the above, please email rwhitear@cisco.com.
Hi Russ,
great article
we have recently deployed ucsd and very interested to get the automation for our large Nimble environment.
everything has been imported and i can browse the arrays via ucsd but when i come to run workflows, lets say create snapshot' it doesnt prompt for the volume or array?
i wondered if you could shed any light pls.
thanks
Mark
Hi Mark,
I've just taken a quick look through the workflows that you mention above and it looks like they were written for UCS Director versions prior to 5.4. I'm assuming that your UCSD version is later than this? If so, I'd delete those from your system and would advise taking a look here:
UCSD - Cisco (Russ) Nimble Integration (UCSD 5.3.2 & 5.4.0.0)(Tasks include rollback!)
Be sure to download the 5.4.0.0 version, which should work on current releases.
If you want volumes, iGroups etc. to show up in the LOV dropdowns, then you need to run the Inventory workflow task (Best idea would be to create a workflow with this single task and tick the checkbox to run every time at system initialisation) which will initialise the dynamic List of Values (LOVs). You can then create workflows with input types of these LOVs and they should show up as dropdowns in your GUI.
HTH
Russ.
Hi Russ
Hope your well.
I never got this to work - would i need to raise a support ticket to get this working?
thanks
mark
Did you take a look at #300 and #322 here
https://communities.cisco.com/docs/DOC-56419
What Is not working?
Hi
I tried installing the newer versions but it does not give me anything when I run an inventory scan etc.
No options to do anything.
For #322 I already use smartstack pods
Thanks
Mark
Mark Shannon
Senior Infrastructure Engineer
<https://twitter.com/WeAreGamma>
<https://plus.google.com/+GammaCoUkWeAreGamma/about>
<http://www.linkedin.com/company/gamma>
<http://www.youtube.com/user/wearegamma>
Does a tail –f /opt/infra/inframgr/logfile.txt tell you anything (ssh session as root)?
Connection errors?
Orf, Russ,
I will work with Mark here via SR. But just to check, Nimble was never supported "out-of-box", i do not see any built-in workflows or tasks to manage nimble (or RestAPI).
I will check workflow later and further with Mark (logs and debugs - can we at all open connection towards Nimble)
No nothing out of the box. Only what Russ wrote. But I remember it is very much dependent on the Nimble version.
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: