Wednesday, December 2, 2015

Captain's Log, Supplemental - HOL-SDC-1602, Migrating to VDS Using Host Profiles

As a Lab Captain for VMware's Hands-on-Labs (HOL) this year, I enjoyed creating content for the lab "vSphere with Operations Management 6- Advanced Topics" (HOL-SDC-1602).  However, I had to cut some of the content due to the length of the lab.

One of the topics I had to cut was "Migrating to the vSphere Distributed Switch" where you learn how to migrate using the Host Profiles method.  In the official lab guide, you will use the vSphere Web Client to perform the migration from a vSphere Standard Switch (VSS) to a vSphere Distributed Switch (VDS).  However, another method exists using Host Profiles and works much better at scale and ensures that any new hosts will be set up for networking appropriately.

You can find the supplemental guide here.  HOL are available here and registration is free and easy.

Friday, November 20, 2015

Get A List of vR Ops Available Metrics

When building dashboards, reports or even symptoms and alerts in vRealize Operations Manager 6, it may be helpful to have a handy reference of metrics available in a given instance of vR Ops.  This is dependent on the solutions installed, of course, so this will vary from instance to instance.

Also, with the vRealize Operations Manager 6.1 Endpoint Operations capability, it may be useful to have a list of all metrics available after installing a new solution or plugin (such as SQL or IIS).

I have created a vRealize Orchestrator workflow and action to provide an HTML output of available metrics for a given solution.  In vR Ops API terms, solutions are "adapter kinds" so the workflow input and output uses this nomenclature.  But, they both mean the same thing.

You can download the solution from FlowGrab here.  Sample output below.

Thursday, November 5, 2015

Cannot Start a VM - A general system error occurred: Connection refused

The error referenced in the title was one I ran into today while trying to start some VMs.  I finally found a KB somewhat related to this issue and the workaround did the trick for me.

Basically, the vCenter Workflow Manager service had stopped on my vCenter server.  In my case, I'm running the 6.0.0 vApp so I had to open an SSH session and enter the following:

shell.set --enabled true
shell
service-control --status vmware-vpx-workflow
   (this command confirmed the service was stopped)
service-control --start vmware-vpx-workflow

Once running, I was able to start VMs again from vCenter.

Not sure why this was so hard to find in a web search but hopefully the search engines will pick up this blog post and save people some time!

See also:

VMware KB: VMware NSX for vSphere 6.x Controller deployment fails the error: Failed to power on VM NSX Controller
VMware KB: Stopping, starting, or restarting VMware vCenter Server Appliance 6.0 services

Friday, July 24, 2015

Using Postman to Explore the vRealize Operations Manager 6 API

If you are like me, the concept of REST was something I understood but as a vAdmin I had no exposure to actually using for automation tasks.  In short, the REST API provided with vR Ops 6 allows you to interact with vR Ops through scripts and workflows (i.e. vRealize Orchestrator).  But before jumping into that, it is helpful to understand, "How do I get to the REST API and what can I do?"

For that, I have prepared a video walking you through a set of Postman REST calls I put together in a collection.  I have grown to like Postman, which is a Google Chrome extension, as my REST client of choice.  Using Postman, I can formulate and test REST calls that I may wish to use with scripts and workflows, or just quickly grab information or make changes.

If you don't have Postman installed, it's easy enough to start.  Just install the extension; it's free (although there are additional costs for advanced features - I don't use any in this tutorial).

Next, you will need the link to my Postman collection for vR Ops 6.  Once you have that, you are ready to watch and then practice on your own.  You will, of course, also need your own instance of vR Ops to experiment with and I highly recommend you do this on a non-production system.


Tuesday, April 14, 2015

Adding New Property Sets in vRealize Automation 6

Build Profiles in vRA are a great time saver for managing sets of custom properties that share a common purpose.  When you create Build Profiles, you can add sets of custom properties without having to refer to the vRA documentation with Property Sets.


It would be handy to create your own property sets - for example, I'm always looking up the properties needed to envoke the Guest Agent.  I just can't seem to remember them!

Fortunately, you can do this in vRA by importing an XML document with the properties you want to create a custom Property Set.

The format for the XML is -

<?xml version="1.0" encoding="UTF-16"?>

<Doc>
  <CustomProperties>
    <Property Name="propertyname" DefaultValue="somevalue" Encrypted="true_false" PromptUser="true_false"/>
  </CustomProperties>
</Doc>

So, in my case, I created an XML document for Guest Agent properties as follows -

<?xml version="1.0" encoding="UTF-16"?>

<Doc>
  <CustomProperties>
    <Property Name="VirtualMachine.Admin.UseGuestAgent" DefaultValue="true" Encrypted="false" PromptUser="false"/>
<Property Name="VirtualMachine.Admin.CustomizeGuestOSDely" Encrypted="false" PromptUser="false"/>
<Property Name="VirtualMachine.Customize.WaitComplete" DefaultValue="true" Encrypted="false" PromptUser="false"/>
<Property Name="VirtualMachine.Software0.Name" Encrypted="false" PromptUser="false"/>
<Property Name="VirtualMachine.Software0.ScriptPath" Encrypted="false" PromptUser="false"/>
  </CustomProperties>
</Doc>

From the

Infrastructure tab > Blueprints > Build Profiles section in the UI, you can select the Manage Property Sets link to import the XML (scroll down to the bottom of the screen) -




Once imported, your Property Set is ready to use in Build Profiles -



Friday, April 10, 2015

A Postman Collection of vRealize Automation 6 API Calls

I recently had a demo request for the vRealize Automation 6 consumer REST API and I put together a quick collection of Postman REST calls for the demo so I wouldn't have to type them out or search my history during the demo.  I thought I would share them here as others might find this collection useful when exploring the API.

The collection JSON can be found here.

If you aren't familiar with Postman, it is a REST client add-on for Chrome that you can use to test and view API calls - very powerful and lots of features I haven't even explored.  I prefer the "packaged app" version rather than the Chrome plugin.

As of this posting, I have 8 REST calls in the collection.


  • Authenticate - contains the URI and JSON example form for requesting a bearer token.  You'll need the token for the rest of the actions, so explore this first.  Tokens are good for 24 hours by default.
  • Get IaaS Catalog Items - this is a GET for catalog items with a query on the end of the URL for the service ID associated with your IaaS service.  To get this ID, you'll need to run the "Get All Services" and examine the output to find the IaaS service ID.
  • Get All Services - as explained above.  You can also use this to modify the Catalog Items request to find ASD catalog items, AppService catalog items, etc.
  • Get A Catalog Item - Once you have a catalog item ID, you can update the URL and replace the example ID with your own.
  • Request Catalog Item - You'll need to do a little more work here.  For the most part, the example is good but you will want to modify the JSON request in the body to align with your catalog item's fields.  You'll note that I changed several values for some keys that have to modified with your specific environment information (for example, "CATALOG ITEM ID HERE").  For the request key:values modify the requestData/entries array to match the request form you would normally see in the UI.  An easy way to do this, is to use the CloudClient to export a previous request in JSON format and then you can copy the entries array to use with this request.  You could also use Postman to get a previous request and copy/paste from there, but I just find it easier to use CloudClient for that task because I then have a copy I can refer back to without having to get the request again.
  • Status of Request - You can always go into the vRA UI and check the status of a request, but programatically you can do the same using this call.
  • Resource Action Request - This example can be used to perform an action menu item request. Use the "Get Actions for a Resource" call to obtain the pertinent information for the request.
  • Get Actions for a Resource - As indicated above, precursor for running the "Resource Action Request" but note that the action IDs are global (i.e. Power off a VM) so if you are requesting the same action on multiple machines you don't need to modify the action ID each time.
Hope this helps.  Questions in comments or hit me on twitter @johnddias.  

Tuesday, February 3, 2015

Gotcha: vCM 5.7.3 Install on Windows Server 2012R2

Upgrading my lab and ran into an issue doing a fresh install of vCM 5.7.3 on a two-tier Windows 2012R2 setup.  On the collector server, I was having two issues using the "Typical" install...

1 - During the pre-req inspection, I would get a couple of pop-ups stating that "Sysinspectoidwmi" module had stopped working.  Clicking OK cleared the pop-ups and the checks continued no problem.

2 - At the Pre-Requisite wizard, I was unable to get SQLXML installed via the "Download" option.  A peer suggested installing SQLXML manually on the collector server, and when I did I got an error that I needed .NET 2.0!

Installing the .NET 3.5 framework on my Windows Server 2012R2 collector did the trick.  Both issues were resolved.