I want to say this is the culmination of my last almost two years of creating vRealize integration for Pure Storage, but that isn’t the right word. It is a milestone, because there is still so much more cool stuff to be done. Especially with vRealize Automation. In many ways it is just the beginning! But I can now demonstrate Pure Storage FlashArray integration with the whole vRealize stack: Log Insight, Operations, Orchestrator and Automation.
There are many ways vRealize Automation (vRA) can leverage vRealize Orchestrator (vRO), and therefore transitively, how vRealize Automation can manipulate the FlashArray.
What I will be outlining in this post is using vRO workflows as catalog items that can be assigned to users to run. This is the basic part of integrating FlashArray (or any storage platform) provisioning into a self-service product. As I said before, a lot more to do in this area with vRA but let’s start with the basics.
Scroll down for a video demo of all of this.
Infrastructure as a Service (XaaS)
The first part of this to understand is the Infrastructure as a Service feature of vRA. XaaS can be deployed as part of the basic install of vRA and is based on Windows IaaS and SQL Server. When this is deployed, you can create special blueprints referred to as XaaS Blueprints that are specifically targeted for infrastructure tasks, like provisioning networks or storage. Regular blueprints are targeted for built in tasks like deploying a VM from a template.
A XaaS Blueprint is a vRO workflow. So anything a workflow can do, so can a XaaS Blueprint and therefore any user in vRA can be provisioned that task. Which is basically whatever your imagination is limited to.
Is this scriptable? Yes, the answer is always yes.
— Cody Hosterman (@codyhosterman) February 12, 2016
vRA comes with a built-in vRO instance, or you can use an external one (or both). When you go to add a new XaaS blueprint, you are just navigating your vRO workflow inventory. Click on the Design tab, then XaaS. Note if “Design” doesn’t appear, you probably do not have the right permissions in that tenant.
Don’t click on blueprints, those are the non-XaaS ones. Click on XaaS, then XaaS blueprints:
To create new one, click the New option in the pane that appears. This will bring up your vRO inventory.
Make sure you have already imported the FlashArray vRO workflow package into vRO. Select one of those, or select a new one you have built from it. I am going to choose one of the larger workflows, that does the following:
- Takes in a Cluster from vCenter and a FlashArray
- Finds the WWNs of the hosts in that cluster
- Creates a FlashArray REST session
- Compares the WWN listing to find the proper host group to connect a volume to
- Creates a new volume on the FlashArray in accordance to the input
- Connects it to the host group
- Rescans the ESXi hosts and format that volume with VMFS
This is a built-in workflow (well built-in to the package) called “Provision new VMFS from FlashArray”. When you select the workflow, vRA understands the metadata of the workflow and what it needs (inputs) and what it returns. For this post let’s focus on the inputs. The outputs will be for a later post.
When you click submit, it allows you to configure how the catalog item based on this blueprint will look, or specifically how the user will interact with it when they request it. The first step is the introduction screen of the blueprint (title, description etc). This is populated from what vRO has but you can change it.
Next you can configure the wizard and input your end user can manage. By default it will take in what the workflow asks for. In this case, a VMware cluster, a FlashArray, a volume size and name, optionally a LUN ID. The entries for this default at asking the user, either text to be entered, or a inventory item to be selected via navigation. This can all be changed if you want.
For instance I can hard code some volume size options by changing the volume size to a drop down
This is a good idea when you want to keep standard volume sizes or standard whatever. For inventory items you can either allow them to choose or enforce a certain object, like a FlashArray target. This way the user does not get to choose which FlashArray they provision to, if that is what you want to do.
The last part is choosing what resource you want to provision if there is one. I will leave this for a later post.
That’s the quick run through! I will discuss publishing this to a set of users in a upcoming post. The great thing about the tight integration of vRO and vRA and the simplicity of adding in the FlashArray as a target via our workflow package, is that you can create a very powerful provisioning and management interface in not a lot of time. So much more to explore from vRA though, excited to continue my work on this!
All of this in video: