Home > Blogs > VMware vSphere Blog > Category Archives: vCloud Suite

Category Archives: vCloud Suite

Help us improve vSphere!

Are you a vSphere user? If so, we want to hear from you. Attached is our new survey. Help us build a better product and make sure our features are aligned with your business needs.



Enhancing User Experience: Customization of vRealize Automation 6.2.x Email Notifications

User Experience (“UX”) focuses on the intimate understanding of your users. What is it that they need or desire, what do they value, what are their abilities, as well as their limitations?

As you embark upon the journey to the software-defined data center (SDDC), think and architect in terms of the user experience in addition to “boxes and arrows.”

  • What are the desired UX outcomes for those consuming the service(s)?
  • Have you considered the UX in terms of its usefulness, usability, desirability, accessibility, credibility, and its value?

In addition to fundamental tenant and business group designs, entitlements and service catalogue designs, one such area for UX consideration is the messages provided to those consuming services of the software-defined data center.

For a moment, imagine you are providing automated infrastructure delivery to multiple business segments of a large media and entertainment organization, each with their own distinct brand. The segments are built upon their individual brand and identity.

  • Do you centrally brand the service that you offer or do you tailor the service to each tenant business segment?
  • How would this change if instead the services were used to provide automated infrastructure delivery only to your IT Operations team and not direct end users?

The messages that appear in the inbox of the user are part of the experience. VMware vRealize Automation can send automatic notifications for several types of events, such as, the successful completion of a catalogue request or a required approval workflow.  System Administrators can configure global email servers, senders and recipients that process email notifications.

Tenant Administrators can override those defaults, or add their own servers, senders and recipients if no global attributes are specified. They may even select which events will cause notifications to be sent to their users. Each component, such as the service catalog or infrastructure-as-a-service, can define events that can trigger notifications.


Additionally, each user can choose if they wish to receive notifications. Users either receive all notifications configured by the Tenant Administrator or no notifications.

Notification may also have links that allow the user to perform interactively. For example, a notification about a request that requires approval can have one link for approving the request and one for rejecting it. When a user clicks one of the links, a new email opens with content that is automatically generated. The user can send the email to complete the approval.

Messages can be easily and beautifully customized using a simple, powerful template engine. These may be customized per-locale, per-tenant, and per-notification scenario. You have the ability to define and craft the desired user experience for any notification.

Getting Started with Message Templates

vRealize Automation uses a folder structure to determine the appropriate template to user based on the context of the tenant. Templates files are written in Apache Velocity, an easy to use Java-based template engine. Learn more about the simple directives used in the .vm template files in the Apache Velocity User Guide.

Deploy the Sample Templates

To use message templates in vRealize Automation, you must first obtain the sample templates, customize those templates that you need, and save the templates in the file system of your vRealize Automation appliance(s).

These templates are provided in VMware KB 2088805. Download and copy the vrealize_automation.tar.gz to root “/” the vRealize Automation appliance file system.

  • From Windows, SCP the file to the vRealize Automation appliance with a utility like WinSCP.
  • From Mac or Linux, open and terminal and run the following commands.
    scp vcac.tar.gz root@<vRA-VA-FQDN>:/

​From either Windows, Mac or Linux, SSH to the vRealize Automation appliance(s) and run the following commands to extract the contents to the root of the file system and set the appropriate permissions on the templates.

ssh root@<vRA-VA-FQDN>
cd /
tar -xvzf vcac.tar.gz
find /vcac -type d -exec chmod o+rx {} \;
find /vcac -type f -exec chmod o+r {} \;

Restart the VMware vRealize Automation appliance services by running this command:

 service vcac-server restart

Before we start crafting the custom messages that for the user experience, let’s examine the structure and contents of these loaded sample templates.

There are three main folders in sample templates:

  • /vcac/templates/email/html/core/:
    Contains core templates for messages.
  • /vcac/templates/email/html/forms/​:
    Contains templates for form layouts.
  • /vcac/templates/email/html/extensions/​:
    Contains templates, which are being used to display fields in IaaS forms.

Below is the file structure:


In the core, extensions, and forms subfolders, there is a folder called defaults. The templates, represented as .vm files, in this folder are used by vRealize Automation when tenant specific templates are not specified.

Understanding Contents of /core/defaults/

Inside the /vcac/templates/email/html/core/defaults/ folder the there are five (5) template files that defined the default message structure.

  • ​main.vm: Required.
    This is the main message and is defined by including / parsing additional template files.
  • styles.vm: Optional.
    Included in the samples to define the CSS </style> element consumed by main.vm.
  • header.vm: Optional.
    Included in the samples to define the HTML </header> element consumed by main.vm.
  • links.vm: Optional.
    Included in the samples to define a set of URLs presented in main.vm.
  • footer.vm: Optional.
    Included in the samples to define a footer message presented in main.vm.

As a reminder, these files are built using an Apache Velocity template engine. Learn about the directives used and available that may be used in the Apache Velocity User Guide.

Let’s take a look at the structure of the ​main.vm.

In the main.vm you can see the basic standard building blocks of an HTML document similar to:


Inside the code blocks, Apache Velocity #parse directives call additional.vm template files, for example:

     #parse( 'core/styles.vm' )

Pretty simple, right? Plus, there is tons of room to get creative, as you will see later in this post.

If you can follow standard HTML and basic Apache Velocity directives you are already well on your way. When you create your own .vm files and place them into the defaults folder remember to include the core/ before the template name in the #parse directive.

You will also notice there is a call within the </body> element for $body. This directive is calling content for the message based on the notification scenario. Content layouts for the $body element is provided in the /vcac/templates/email/html/forms/​ directory contents.​

Now, let’s move forward and explain how to provide per-tenant, per-locale and scenario based directory structures.

Customizing Per-tenant Templates

As mentioned prior, tenant specific templates can be loaded in the tenants/<tenantName> folder in parallel to the defaults folder.

For example, if your tenant was named “CloudOperations” you would add a /CloudOperations/ folder under the tenants folder.


When a new folder/file is added for customization, you must ensure it has right permissions by executing commands on the vRealize Automation appliance(s).

find /vcac -type d -exec chmod o+rx {} \;

find /vcac -type f -exec chmod o+r {} \;

You need to wait for 120 seconds to see new customizations reloaded and reflected in messages.

Customizing Per-locale Templates

Locale specific templates can be specified in defaults or tenants/<tenantName> folders. These folders can contain further sub-folders for locale specific templates.

When searching for locale-specific template, vRealize Automation searches by country, then language, and on the defaults. ​For example:

1. /vcac/templates/email/html/core/defaults/fr/CA/<template>.vm
2. /vcac/templates/email/html/core/defaults/fr/<template>.vm
3. /vcac/templates/email/html/core/defaults/<template>.vm

When searching for a tenant-specific template, vRealize Automation searches through the tenants folders before searching the defaults folder. A search through these tenant-oriented folders simultaneously inspects for locale. When no tenant information is defined, search is confined to the defaults folder alone.

For example, when searching for a <template.vm> in the locale fr_CA (French Canada) under the CloudOperations tenant the following sequence of paths would be checked in this order:

  1. 1. /vcac/templates/email/html/core/tenants/CloudOperations/fr/CA/<template>.vm
    2. /vcac/templates/email/html/core/tenants/CloudOperations/fr/<template>.vm
    3. /vcac/templates/email/html/core/tenants/CloudOperations/<template>.vm
    4. /vcac/templates/email/html/core/defaults/fr/CA/<template>.vm
    5. /vcac/templates/email/html/core/defaults/fr/<template>.vm
    6. /vcac/templates/email/html/core/defaults/<template>.vm

Customizing Scenario Based Templates 

vRealize Automation 6.1 allows a scenario ID to be used to customize template content.

For example, in a .vm template you could specify a scenario such as:

#if ($scenario == "csp.catalog.notifications.resource.activated")
     <p>Lorem ipsum dolor amet, consectetur adipiscing elit.</p>

In vRealize Automation 6.2 we introduced a new, scalable, and recommended approach to scenario based notifications.

Note: 6.2 still supports the 6.1 customization method, but it is not recommended. ​

To customize a template file for a specific scenario, create a file named in the following format:


To create a separate main.vm for the above Resource Activated scenario, create a template file with this name:


A list of scenarios can be found in KB 2088805​ or in Administration > Notifications > Scenarios when logged into vRealize Automation as a Tenant Administrator.

Add Custom Properties

Only available in vRealize Automation 6.2 and later, custom properties that are part of the request form can be added in the email template in this format:


Customizing Scenario Subjects

Only available in vRealize Automation 6.2 and later, the subject line can be customized per notification scenario by creating a template with this naming convention:


To define a subject line for the Resource Activation scenario, create a template as:


The content of this file must be only one line of text:

[One Cloud] Your Resource Has Been Activated

Putting It All Together

Now you know how to:

  • Load and Set Default Templates
  • Template Directory Structure and Content
  • Default Template Structure and Directives
  • Customizing Per-Tenant Directory Structures
  • Customizing Per-Locale Directory Structures
  • Customizing Scenario Based Templates
  • Customizing Scenario Based Emails

Let’s take this take this to the next level with an example, and create a custom template for a tenant based on what you now know.

Tenant:                       CloudOperations
Scenario:                    Resource Activated
Locale:                        Default
Template:                   Custom Design
Subject:                      Custom Subject

 Let’s get started….

  1. Obtain the sample templates from KB 2088805 ​.
  2. Open a terminal and run the following commands.
    scp vcac.tar.gz root@<vRA-VA-FQDN>:/
  3. SSH to the vRealize Automation appliance and run the following commands to extract the contents to the root of the file system and set the appropriate permissions on the sample templates.
    ssh root@<vRA=VA-FQDN>
    cd /
    tar -xvzf vcac.tar.gz
    find /vcac -type d -exec chmod o+rx {} \;
    find /vcac -type f -exec chmod o+r {} \;
  4. Restart the VMware vRealize Automation appliance services by running this command:
    service vcac-server restart
  5. Create a custom folder for the CloudOperations tenant in the directory structure:/vcac/templates/
    /vcac/templates/email/html/core/tenants/CloudOperations/ <-- My Tenant!
    /vcac/templates/email/html/extensions/defaults/ <-- Will Use defaults.
    /vcac/templates/email/html/forms/defaults/ <-- Will Use defaults.
  6. Under /vcac/templates/email/html/core/tenants/CloudOperations/ create message and subject templates for the scenario csp.catalog.notifications.resource.activated to be called called when a new requested resource is activated. First, c​reate the file ​subject.vm-csp.catalog.notifications.resource.activated. The first line of the file is edited as seen below.subject.vm-csp.catalog.notifications.resource.activated
  7. Next, ​under /vcac/templates/email/html/core/tenants/CloudOperations/ create the file main.vm-csp.catalog.notifications.resource.activated. If you choose to use custom images, fonts, etc place those resources on an easily accessible web server that the users can access during the render.
  8. In your template, you may want to set some variables to call within the template, such as:

##     --------------------------------
##      Set variables...
##     -------------------------------- 

#set( $orgName = "VMware, Inc." )
#set( $orgStaff = "Cloud Operations" )
#set( $orgDate = "2015" )
#set( $orgSignOff = "Party on,"      )
#set( $orgPoweredBy = "Powered by VMware vRealize Automation and energy drinks." )
#set( $orgURL = "http://demo.vmware.com/" )
#set( $orgImages = "{$orgURL}images/" )
#set( $orgFonts = "{$orgURL}fonts/" )
#set( $orgLogo = "{$orgURL}{$orgImages}logo.png" )

You can call these variables within your template at any time, like so:

##     --------------------------------
##      Start the content close...
##     --------------------------------

Copyright &copy; $orgDate $orgName 

##     -------------------------------
##      End the content close...
##     --------------------------------

Now, I know what you’re thinking. Can I set these as global variables in simply parse that file and call the variable when I need it? Unfortunately, not at this time, but I’m looking into a solution.

What you end up with looks similar to the following.




Once again, remember that when a new folder/file is added for customization, you must ensure it has right permissions by executing commands on the vRealize Automation appliance(s).

find /vcac -type d -exec chmod o+rx {} \;

find /vcac -type f -exec chmod o+r {} \;

​You need to wait for 120 seconds to see new customizations reloaded and reflected in your messages.

Now, let’s put it to work and see what happens when a user requests a new resource from the CloudOperations tenant.


Voila! Isn’t that so much better?

Get creative! Define the user experience for messages from vRealize Automation in your software-defined data center and have fun while doing it.





vCenter Server 6 Deployment Topologies and High Availability

Architectural changes to vSphere 6:

vCenter Server 6 has some fundamental architectural changes compared to vCenter Server Server 5.5. The multitude of components that existed in vCenter Server 5.x has been consolidated in vCenter Server 6 to have only two components vCenter Management Server and Platform Services Controller, formerly vCenter Server Single Sign-On.

The Platform Services Controller (PSC) provides a set of common infrastructure services encompassing

  • Single Sign-On (SSO)
  • Licensing
  • Certificate Authority

The vCenter Management Server consolidates all the other components such as Inventory Service & Web Client services along with its traditional management components. The vCenter Server components can be typically deployed in with either embedded or external PSC. Care should be taken to understand the critical differences between the two deployment models. Once deployed one cannot move from one mode to another in this version.

Continue reading

vCenter Server 6.0 Deployment Guide


Over the course of the last few months I’ve been working on a pretty massive deployment guide for vCenter Server 6, the result turned into a 100 page guide. Before getting scared off by the size the guide it goes into details for installing and upgrading many different scenarios including new installs and upgrades from the most common configurations.

Continue reading

VMware Certificate Authority overview and using VMCA Root Certificates in a browser


With vSphere 6.0 the vCenter Virtual Server Appliance (VCSA), now has a component called the Platform Services Controller (PSC). The PSC handles things like SSO and the License Server and ships with its own Certificate Authority called VMware Certificate Authority (VMCA). In this blog post we’ll quickly go over some of the modes of VMCA operation and how to download and install the VMCA root certificate into your browser.

Continue reading

vSphere 6 Feature Walkthroughs

The Technical Marketing team has put out a series of vSphere 6 related feature walkthroughs. We’re covering vCenter Server install and upgrades for many different scenarios as well as vSphere Data Protection and vSphere Replication.

Continue reading

vSphere 6 Web Client

With the recent announcement of VMware vSphere 6, I can finally start talking about the improvements we’ve made for vSphere 6 Web Client.  Over 100 enhancements, with some user actions performing 5x faster.  There are excel sheets and graphs full of performance data, but the best way to see the difference is to experience it yourself.  If you’ve been wary of using vSphere Web Client in the past, you should give it another shot with vSphere 6.

In my time here I’ve heard of many tips on using Web Client that I didn’t learn during training or while using it directly.  I thought it would be helpful to put all of these learnings in one place.  I’m sure many of you reading this know about some of these tips, but hopefully there are some new ones in there that are helpful to you as well.  This is a living document, so if there are tips and tricks not on the list, please share with the rest of us by adding it to the list.  I should stress that this is not an official VMware document:


Short url: http://tiny.cc/webclientwiki


There are also many enhancements in the vSphere 6 Web Client, some of which are highlighted below:

  • Controlling “All Users’ Tasks” for performance

We know that the All Users’ Tasks view of Recent Tasks is an important feature, but  it also turns out to be an incredibly “heavy” feature, which can quickly spiral out of control and impact vCenter Server performance.  The focus of this version of vSphere Web Client was improving performance and giving you more control on customizing your experience.  In order to achieve both of these goals, we had to make it a bit harder to get to All Users’ Tasks.  This will help ensure that your systems will run smoother out of the box, with the option to enable the feature if you need it.  We are also actively working on a better solution for this feature, but couldn’t get it in time for this release.

You’ll see some instructions when you first select All Users’ Tasks, and more detailed steps are in the Release Notes, but I included them here for reference.  Once you’ve enabled this feature, it becomes the default view:

A) Click More Tasks in the Recent Tasks panel to view all users’ tasks.


B) Edit the webclient.properties file and change the “show.allusers.tasks” setting. For large vSphere environments, changing the “show.allusers.tasks” setting can potentially impact performance.

1. Locate the webclient.properties file

For the vCenter Server Appliance, the file is located in the /etc/vmware/vsphere-client/webclient.properties directory.

For vCenter Server on Windows, the file is located in the C:\ProgramData\VMware\vCenterServer\cfg\vsphere-client\webclient.properties directory.

2. Edit the file using a text editor and change show.allusers.tasks=false to show.allusers.tasks=true.

3. That’s it!  No restart of anything should be required.  Go to vSphere Web Client, select “All Users’ Tasks” and it should work.

  • Many performance enhancements

Performance was the primary goal of this release of vSphere Web Client.  Efforts were made to improve the performance of every portion of the interface, and you should see these improvements when you start using vSphere 6.  Here are some of the major areas we worked on: Login and Home page, Summary pages, Networking pages, Related Objects lists, General Navigation, Performance Charts, Action Menus (right click), and reducing unnecessary data retrieval, which also serves to lighten load on vCenter Server.

The net result is that the vSphere 6 Web Client is an entirely new experience and easier to use than previous versions of vSphere Web Client.

  • Tasks where they belong

This was shown at VMworld, but is worth another mention: The tasks pane is now back at the bottom, giving you room to see the information you need.

Tasks at bottom

This comes along with the ability to move and resize panes (we call this Dockable UI), allowing you to customize it to your liking, such as below where Alarms and Work in Progress have been moved to provide a larger workspace.

Dockable UI

  • Reorganized Action menus (right click)

Action menus have been reorganized and flattened so that your actions are easier to find, and placed more familiarly.  It should be much easier to pick up as you transition from the old desktop client to vSphere Web Client.

Action Menus

  • Home menu navigation

The new and improved home button now shows a navigation menu which allows you to jump from wherever you are to one of the common views.  You can now get back to any of the major inventory trees from anywhere in one click!


I hope this overview encourages you to upgrade your existing vCenter Servers to vSphere 6 so that you can experience these improvements (and more!) that we’ve made.

What’s New with vSphere Data Protection 6.0 and vSphere Replication 6.0

There are many interesting items coming out of VMware’s 28 Days of February where customers can learn more about “One Cloud, Any Application, Any Device”. A couple of the biggest items are the announcements of vSphere 6.0 and Virtual SAN 6.0. In this article, we will look at what is new with two of the more popular vSphere features: vSphere Data Protection and vSphere Replication. Perhaps the biggest news with these two features is around vSphere Data Protection. Before vSphere 6.0 and vSphere Data Protection 6.0, there were two editions of vSphere Data Protection: vSphere Data Protection, included with vSphere, and vSphere Data Protection Advanced, which was sold separately. With the release of vSphere Data Protection 6.0, all vSphere Data Protection Advanced functionality has been consolidated into vSphere Data Protection 6.0 and included with vSphere 6.0 Essentials Plus Kit and higher editions. Keep reading to learn more about the advanced functionality now included as part of vSphere Data Protection 6.0.

Continue reading

vSphere 6 – Clarifying the misinformation

With the Announcement of vSphere 6 this week there is a lot of information being published by various sources. Some of that information is based on old beta builds and is much different than what we’ll see in the final product. In this post I aim to correct some of the information based on the beta builds that’s floating around out there.

First off there’s confusion on the maximum number of virtual machines per cluster vSphere 6 supports. This is in part my fault, when we wrote the What’s New in vSphere 6 white paper the number was 6000. Additional scale testing has been done and that number is now 8000. The what’s new paper will be updated soon to reflect this.

Continue reading

vSphere APIs for IO Filtering

I’ve been fortunate to have one of our super sharp product line managers, Alex Jauch (twitter @ajauch), spend some time explaining to me one of the new enabling technologies of vSphere 6.0: VAIO.  Let’s take a look at this really powerful capability and see what types of things it can enable and an overview of how it works.

VAIO stands for “vSphere APIs for IO Filtering”

This had for a time colloquially been known as “IO Filters”. Fundamentally, it is a means by which a VM can have its IO safely and securely filtered in accordance with a policy.

VAIO offers partners the ability to put their technology directly into the IO stream of a VM through a filter that intercepts data before it is committed to disk.

Why would I want to do that? What kinds of things can you do with an IO filter?

Well that’s up to our customers and our partners. VAIO is a filtering framework that will initially allow vendors to present capabilities for caching and replication to individual VMs. This will expand over time as partners come on board to write filters for the framework, so you can imagine where this can go for topics such as security, antivirus, encryption and other areas, as the framework matures. VAIO gives us the ability to do stuff to an IO stream in a safe and certified fashion, and manage the whole thing through profiles to ensure we get a view into the IO stream’s compliance with policy!

The VAIO program itself is for partners – the benefit is for consumers who want to do policy based management of their environment and pull in the value of our partner solutions directly into per-VM and indeed per-virtual disk storage management.

When partners create their solutions their data services are surfaced through the Storage Policy Based Management control plane, just like all the rest of our policy-driven storage offerings like Virtual SAN or Virtual Volumes.

Beyond that, because the data services operate at the VM virtual device level, they can also work with just about any type of storage device, again furthering the value of VSAN and VVOLs, and extending the use of these offerings through these additional data services.

How does it work?

The capabilities of a partner filter solution are registered with the VAIO framework, and are surfaced for user interaction in the SPBM Continue reading