By Alka Gupta, Pranay Bakre, Eduardo Meirelles and Bhuvanesh Kumar Ravichandran

In the digital economy, the time it takes to bring software to market can be a crucial competitive advantage. Achieving success is increasingly dependent on empowering developers to be rapid innovators. VMware vSphere Integrated Containers does just that—it gives devs an essential tool for streamlining the process of building and running containerized applications in production.

But to decrease time to market, developers can’t just be fast and agile; they also need to be self-sufficient. Even with vSphere Integrated Containers, developers might still have to request their first Virtual Container Host (VCH) through a ticketing system or email. Submitting these requests and waiting for them to be filled can bog down the software development process.

VMware vRealize Automation supplies the missing piece of the puzzle. Its service catalog can instantly provision IT services across a multi-vendor, multi-cloud infrastructure. By using the service catalog in vRealize Automation to provision Virtual Container Hosts on-demand as a ticketless offer, you can make your developers self-sufficient. They can then stop submitting requests for VCH, and IT can stop scrambling to fulfill them.

Here’s a step-by-step tutorial on how to use the XaaS blueprint in vRealize Automation to create a fast, self-service offering of Virtual Container Hosts while ensuring compliance with business policies. The following steps, which assume you are using vRealize Automation 7.2 or later, automate the provisioning of VCHs from the vRealize Automation service catalog.

  1. Download the ‘’ file and unzip it
  2. Log in to vRealize Orchestrator in your environment
  3. Select ‘Design’ from the dropdown on the homepage, click on the ‘Packages’ tab and select ‘Import Package’ icon
  4. Select the vmware.vra.vic.package from the zip file, trust the certificate and import it as seen below:

    Virtual Container Hosts

    Once imported successfully, you should see the package and its workflows in the inventory.

  5. Go to the ‘Workflows’ tab and verify that you see the workflows as below:Virtual Container Hosts
  6. Go to the ‘Configurations’ tab and select the configuration element found under the path – VMware->VIC Deploy->vRealize Automation->Targets. Virtual Container HostsNote: The element contains example values. Edit the element as per your environment settings. You can change the name of the element as well. Note: If you are using multiple clusters in your environment, you need to add an additional attribute named ‘compute-resource’ and the name of the cluster as its value.
  7. The name of configuration element in the path — VMware->VIC Deploy->vRealize Automation->Deployments must be the same as the configuration element under the path — VMware->VIC Deploy->vRealize Automation->TargetsVirtual Container Hosts
  8. Go to the ‘Workflows’ tab, expand the tree — Library->Dynamic Types->Configuration and execute the workflow — Import Configuration From Package
  9. Select the ‘dynamictypes-config-23-Feb-2017-19-36-55-GMT.package’ from ‘’ and submit the workflow like below:Virtual Container Hosts
  10. Download the vic-1.2.1.tar.gz
  11. Unzip the file.
  12. Log in to the vRealize Orchestrator appliance and copy the vic v1.2.0.tar file to this location: /etc/vco/app-server
  13. Untar the file using the following command: tar –xvf vic1.2.0.tar
  14. A folder should be created on the path named vic
  15. Change the permissions for this folder using the following command: chown –R vco:vco vic
  16. Verify the change of permissions by executing the following command: ls –lVirtual Container Hosts
  17. Edit the /etc/vco/app-server/properties and add the following property to the bottom of the file: com.vmware.js.allow-local-process=true
  18. Close the editor and restart the vco service using the following command: /etc/init.d/vco-server restart (Note: If you have a high available implementation of vRealize Automation, steps 10 – 17 must be performed on every vRealize Automation appliance node).
  19. Go back to the unzipped directory of ‘’ that you downloaded in the first step and import the XaaS blueprint into your vRealize Automation setup using a utility called CloudClient.
  20. Log in to your vRealize Automation environment using CloudClient:Virtual Container HostsNote: Log in with a user who has IaaS administrator privileges with the following command: vra login userpass –user –tenant –server https:// –password
  21. Import the blueprint using the following command — vra content import –path “path_to extracted_files”\02.23.2017\ –resolution OVERWRITE –precheck WARN –verbose as shown in the screenshot below:Virtual Container Hosts
  22. Once you successfully import the blueprint, you should see this blueprint in vRealize Automation:Virtual Container Hosts
  23. Similarly, import the XaaS-resource action into vRealize Automation using the following command: vra content import –path “path_to extracted_files”\02.23.2017\ –resolution OVERWRITE –precheck WARN –verbose
  24. Log in to your vRealize Automation tenant, navigate to Design->XaaS->XaaS Blueprints and edit the blueprint ‘Deploy Virtual Container Host.’
  25. Go to the ‘Blueprint Form’ tab and select the field named ‘Select vSphere / ESXi Host.’ Make sure that the ‘Default Value’ matches the name of the configuration element specified in step sixVirtual Container Hosts
  26. To make this blueprint available for consumption, make sure to publish and add it to the correct entitlements so DevOps users can request VCH from their available catalogs. Similarly, add the ‘Destroy VCH’ action to the entitlements for DevOps users. This action will be used to remove VCH from the environment
  27. Go to the ‘vRA Catalog’ tab and you should see ‘Deploy Virtual Container Host’ as a catalog item
  28. Request the item, pass in the required parameters like ‘Virtual Container Host Name’ and ‘Bridge Network Port Group’ and submit the requestVirtual Container Hosts
  29. Check the status of your request in the ‘Requests’ tab
  30. Log in to vSphere and you should see a vApp named ‘Demo-01’ and a virtual machine with the same name provisioned in your environment as shown in screenshot below:Virtual Container Hosts
  31. Log in to your vRealize Automation tenant and navigate to the ‘Containers’ tab. In the ‘Hosts’ section, you should see ‘Demo-01’ with status as ‘ON’ as shown below:Virtual Container Hosts

Once the VCH is deployed, its URL can be made available to the developers who can then start deploying vSphere Integrated Containers using the Docker client OR from vRealize Automation utilizing the vRA-Containers provisioning feature.

To learn more about deploying containers using VMware Virtual Container Hosts, check back in to the Cloud-Native Apps blog and be sure to follow us on Twitter (@cloudnativeapps).