Windows could not parse or process the unattend answer file for pass [specialize]

I was at a customer which I have deployed vCloud Automation Center 6.1 for, and they tried to create a new blueprint. They have copied the old blueprint and only changed the VM template used in that blueprint from Windows 2012 to Windows 2008 R2. They saved and published the new blueprint without any problem, then they tried to deploy the new blueprint. The blueprint deployment kept failing with the following error:

“Request failed: Machine VTTestVM001: Timeout customizing machine”

From the error, I was able to tell it was getting stuck at the guest customization stage, so I deployed one more VM and waited till it get to the guest customization stage, then opened a console to the VM to be greeted  with the following Sysprep error:

Windows could not parse or process the unattend answer file for pass [specialize]. The settings specified in the answer file cannot be applied. The error was detected while processing settings for component [Microsoft-Windows-Shell-Setup]“

Below is a screenshot showing the actual error on screen:

Windows could not parse or process the unattend answer file or pass [specialize]

After I hit OK, the machine restarted again and gave the following error and kept repetitively restarting and giving the same error afterword:

“The computer restarted unexpectedly or encountered an unexpected error.Read More

vCAC 6 Property Dictionary Relationship Builder

While you can create property Dictionary Relationship XML by hand as I have shown in my previous post: vCAC 6 Property Dictionary Relationship, it has been proven to be so tedious of task to do when having a large environment,  that I wanted a more compelling way of doing it. That’s why I came up with my vCAC 6.x Property Dictionary Relationship Builder (This work with all versions of vCAC 5.1 and higher). I am going to continue with the example of my previous two posts: vCAC 6 Custom Properties – Build Profiles – Property DictionaryvCAC 6 Property Dictionary Relationship and show you how to generate the same property dictionary relationship XML using my my Property Dictionary Relationship Builder. Please read my previous post for more background of the scenario used in this example.

Let’s start by quickly showing the same table used in my previous post to demonstrate the relationship we are trying to generate. In this post I will use my generator to produce the location and storage relationship demonstrated in the below table

Location Storage Network
Toronto Toronto_T1 Toronto_Prod_PG01
Toronto_T2 Toronto_Prod_PG02
Toronto_T3 Toronto_DMZ_PG01
Boston Boston_T1 Boston_Prod_PG01
Boston_T2 Boston_Prod_PG02
Boston_T3 Boston_DMZ_PG01
Paris Paris_T1 Paris_Prod_PG01
Paris_T2 Paris_Prod_PG02
Paris_T3 Paris_DMZ_PG01

The expected Property Dictionary relationship XML file between Location & Storage for the above table look like below:

<?xml version=”1.0″ encoding=”utf-8″ standalone=”yes”?><ArrayOfPropertyValue xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”><PropertyValue><FilterName>Vrm.DataCenter.Location</FilterName><FilterValue>Toronto</FilterValue><Value>Toronto_T1</Value></PropertyValue><PropertyValue><FilterName>Vrm.DataCenter.Location</FilterName><FilterValue>Toronto</FilterValue><Value>Toronto_T2</Value></PropertyValue><PropertyValue><FilterName>Vrm.DataCenter.Location</FilterName><FilterValue>Toronto</FilterValue><Value>Toronto_T3</Value></PropertyValue><PropertyValue><FilterName>Vrm.DataCenter.Location</FilterName><FilterValue>Boston</FilterValue><Value>Boston_T1</Value></PropertyValue><PropertyValue><FilterName>Vrm.DataCenter.Location</FilterName><FilterValue>Boston</FilterValue><Value>Boston_T2</Value></PropertyValue><PropertyValue><FilterName>Vrm.DataCenter.Location</FilterName><FilterValue>Boston</FilterValue><Value>Boston_T3</Value></PropertyValue><PropertyValue><FilterName>Vrm.DataCenter.Location</FilterName><FilterValue>Paris</FilterValue><Value>Paris_T1</Value></PropertyValue><PropertyValue><FilterName>Vrm.DataCenter.Location</FilterName><FilterValue>Paris</FilterValue><Value>Paris_T2</Value></PropertyValue><PropertyValue><FilterName>Vrm.DataCenter.Location</FilterName><FilterValue>Paris</FilterValue><Value>Paris_T3</Value></PropertyValue></ArrayOfPropertyValue>

While the above XML file look not too bad and could be edited manually, imagine if you have to generate the same type of XML for a large Property Dictionary Relationship that include 10s of filter values and for each filter 10s of values.… Read More

vCAC 6 Property Dictionary Relationship

Property Dictionary Relationship in vCAC 6 allow you to build a relationship between the different drop down menu boxes provided to your End User for input. This provide a more elegant and flexible solution when it come to user input in the vCAC request form. It will help you provide the user with only the valid choices rather than provide them with every choice in the list. Let’s take an example.

vCAC Property Dictionary Relationship

The above diagram demonstrate a vCAC request form with three drop down menus into it for Location, Storage, & Network. Let’s assume you have the following list of items for each list as below:

Location Storage Network
Toronto Toronto_T1 Toronto_Prod_PG01
Toronto_T2 Toronto_Prod_PG02
Toronto_T3 Toronto_DMZ_PG01
Boston Boston_T1 Boston_Prod_PG01
Boston_T2 Boston_Prod_PG02
Boston_T3 Boston_DMZ_PG01
Paris Paris_T1 Paris_Prod_PG01
Paris_T2 Paris_Prod_PG02
Paris_T3 Paris_DMZ_PG01

If you implement the above table values into a property dictionary drop down menus(Without building relationship), you will have 3 options to choose from for location, and 12 options to choose from for storage and network no matter what location you have chosen, although only 3 options for Network or storage is valid for any particular location. In this case, property dictionary relationship become a very handy feature. As you can filter the storage and network field based on the location field.… Read More

vCAC 6 Custom Properties – Build Profiles – Property Dictionary

vCloud Automation Center offer a lot of extensibility features built in within the product that help you achieve your desired result while minimizing the amount of coding required. vCAC Custom Properties, Build Profiles, Property Dictionary is just an example of how you can customize the product to meet your needs while minimizing coding as well customize the input form to meet your need. As Property Dictionary seems to be the most missed/mis-understood feature of vCAC followed by Build Profiles and Custom Properties, I have decided to put a post together trying to simplify the explanation of these great features as much as possible. As well, I will be pointing you out to more resources at the end of the article to learn more in depth of each of these features.

vCAC Custom Properties:

As Custom Properties is the building block for Build Profiles and Property Dictionary, it will be very hard to explain any of the later without covering Custom Properties. As per VMware documentation, the way they define custom properties is as follow:

“VMware vCloud Automation Center™ custom properties allow you to add attributes of the machines your site provisions, or to override their standard attributes.”

What that is trying to say, vCloud Automation Center utilize particular variables (Custom Properties) that contain values that vCAC uses during machine provisioning (Ex: machine name, machine IP Address, Port Group to use, & so on).… Read More

vCloud Automation Center 6.1 Upgrade (Step-by-Step)

As the long waiting vCAC 6.1 was released beginning of this week, I have decided to test the upgrade process in my home lab as many of my customers are getting ready to benefit of the new features and enahancements in this release. The good news for everyone that the process is straight forward, where the only challenge I had during the upgrade is satisfying the Java requirements. This post will take you in a step by step fashion of the vCAC 6.0.1 to vCAC 6.1 upgrade process.

Upgrading the vCAC Appliance

  1. Shutdown the services on the vCAC Appliance using the following commands:
    • service vco-server stop
    • chkconfig vco-server off
    • service vcac-server stop
  2. Stop the vCAC Appliance before upgrade
  3. Shutdown all the services on your IaaS Windows Server. Under Start => Administrative tools => Services. Make sure to shutdown:
    • All VMware vCloud Automation Center agents
    • All VMware DEM workers
    • VMware DEM orchestrator
    • VMware vCloud Automation Center Manager Service
  4. You can download the update by going to the vCAC Appliance and let it directly download the vCAC update from the internet (What I am going to do here). Else you can actually download an iso image or create your own web repo that you connect the appliance to for update.
Read More

Convert your vCAC Appliance to a vPostgres DB Appliance for vCAC Distributed install in 5 easy steps

VMware vCloud Automation Center (vCAC) 6.0 documentation and reference architecture recommends the utilization of an external instance of vPostgres when setting up a large/Medium distributed vCAC environment. However, since the release of vCAC 6.0 documentation, standalone vPostgres is EOA and no longer available as a standalone product. VMware has addressed that by allowing you to convert a vCAC 6.0 Appliance into a vPostgres Appliance for free. In fact, VMware has released a KB to demonstrate this, but that KB is highly focused on how to get replication setup for the vPostgres Appliance rather than on how to convert or use the vCAC Appliance in place of a vPostgres Appliance. KB2083563 is the article that show you how to use the vCAC Appliance in place of the vPostgres Appliance and how to setup replication for it. If you just need the simple steps of how to use the vCAC Appliance in place of the vPostgres Appliance and VMware HA is enough for your availability and you don’t require replication, then today is your lucky day as this article is going to show you how to achieve that in 3 easy steps (from now on in this article I will call the vCAC Appliance to be used as a vPostgres database vCAC vPostgres appliance):

  1.  Download vCAC 6 Appliance & Deploy it to be used as your vCAC vPostgres Appliance.
Read More

How to configure vCAC not to delete VMs after deployment failure

I have a customer approach me asking of how we can stop vCAC from deleting VMs after deployment has failed for debugging purposes. The default behavior of vCAC is to delete the VM after deployment failure even if that failure was just caused by Guest customization failure or by the Guest Agent execution failure. The problem when a deployment fail due to a Guest Customization failure or by Guest Agent execution failure and the VM get delete as the deployment fail, you are left with no in guest logs to trace the cause of the problem which explain the need for stopping vCAC from deleting VMs after VMs deployment failure for debugging/troubleshooting.

Luckily vCAC Proxy Agent can be configured not to delete VMs after deployment failure and send it to VRMDeleted folder instead of deleting it and it can be deleted manually after you finish your debugging. If you think you need to stop vCAC from deleting VMs from vCenter after deployment failure for troubleshooting or any other reason, then below is how to do just that.

A system administrator can modify proxy agent configuration settings, such as provisioning machine credentials and deletion policy for virtualization platforms, after installation. The proxy agent utility can be used to modify the initial configurations that are encrypted in the agent configuration file.… Read More

vCAC 6 Service Temporarily Unavailable

As I have deployed vCloud Automation Center 6.0.1 in my home lab on vSphere 5.5, the installation worked flawlessly as I have carried out the same installation several times in production for several customers before. vCAC seemed to work without any problem at all for few hours, then I started getting the following error every time I tried to access my vCAC Portal:

———————

Service Temporarily Unavailable 

The Server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

———————

Below is a screenshot of the actual error:

vCAC Service temporary unavailable

 

I was surprised to see the above error, and when checked the status of my vCAC Services under the services tab in the appliance management console of vCAC the pages was not loading although all the other tab were working just fine. I logged in through ssh to the vCAC Appliance and restarted the vCAC Service using the following command:

# service vcac-server restart

After restarting the vCAC Service and waiting for about 5 minutes, I have noticed that all the services of vCAC is now showing up on the service tab and right after that the vCAC portal started to function again. Initially I thought the service might hanged for some reason or so on, but after few hours the same issues came up, and I have noticed that I am getting the same problem repeatedly every few hours where my services stop again.… Read More

vCloud Automation Center and vCenter Appliance

Yesterday, I was asked twice if using our vCenter Server Appliance (vCSA) with vCloud Automation Center (vCAC) is a viable option. As one of the two requests came from inside our VCDX family, It seems to be not a common knowledge, not when I get asked by another VCDX about it.  I thought this seems to be a good topic to address in a blog post, as the following questions seems to come often:

  • Does vCloud Automation Center (vCAC) 6 support vCenter Server Appliance (vCSA)?
  • Do your recommend using vCSA with vCAC?
  • What’s the added benefits of using vCSA  in my vCloud setup?
  • What extra limitations does using the vCenter Server Appliance with vCloud Automation Center impose to my environment?

I am sure you either had one of these questions on your mind or had been asked one of these at least once if you are working on a vCloud Automation Center setup. I will try to address these questions in this post.

Does vCloud Automation Center (vCAC) 6 support vCenter Server Appliance (vCSA)?

vCloud Automation Center and vCenter Appliance

I guess the image above gave the answer away, but for those of you who liked it spelled out, yes vCAC 6 support vCSA. Just make sure you check the vCenter interoperability matrix to ensure you are getting a supported version of the vCenter Server Appliance with the version of vCAC you are planning to install.… Read More

vCAC 6 Missing VM Actions

This problems seems to lately surface more than not when delivery a vCAC 6 Distributed installation. After you complete your vCloud Automation Center 6 installation without a hitch and you thought everything is working perfectly, you go to your Catalog Entitlements and try to assign Actions allowed and you notice that you have only few of what you really should have. The below screenshot provide a sample of which only actions I were able to entitle to my catalog items:

vCAC 6 missing VMs Actions

 

Before you jump to a conclusion that this the same problem you are having, please ensure that you have assigned the right permissions to your blueprint and entitlements to your Catalog item. For initial testing try to give all permissions to your blueprint as in the below screenshot:

 vCAC provide permissions on Blueprints

After providing the permissions on the vCAC Blueprint then you want to ensure your Catalog entitlements are set correctly. Go to Catalog action entitlements and check which Actions could you entitle to your Catalog item. If it look like the below screenshot then you are definitely having the same problem this article is trying to address as you should have much more actions that you can entitle to your Catalog Items.… Read More

vCAC 6 Service Unreachable – Reference error REPO404

While delivering a distributed install of  vCloud Automation Center using exactly the same steps I have used for few previous engagements, & while the setup completed perfectly without any errors, accessing the infrastructure tab in vCAC has continuously reported the following error:

—————————————————————————-

Service Unreachable

A required service cannot be reached at the expected address.

Please contact your system Administrator for Assistance.

Reference error REPO404.

—————————————————————————–

vCloud Automation Center 6 repo404 error

I was quite certain I have done the certs right, as I followed my certs guide that I had followed in few other engagements previously and posted it on my blog before at: vCloud Automation Center 6 Certificates A to Z.  Just for your reference if you have not read that post all the certs was generated by Active Directory CA.

As the above error can be caused by few different causes, I have went into checking my different vCAC logs and the error that helped me identify the cause was in the vCAC IaaS Web Server Windows Event log and below is a copy of that error (I marked in red the part that gave it away)

——————————— vCAC 6 SSL/TLS secure channel Error Start ——————

Log Name:      Application

Source:        VMware GUI Administration

Date:          05/28/2014 5:36:52 PM

Event ID:      0

Task Category: None

Level:         Error

Keywords:      Classic

User:          N/A

Computer:      IAASWEB1.vt.com

Description:

Timestamp: 5/28/2014 9:36:52 PM

 

Message: Error occurred writing to the respository tracking log

System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.Read More

vCAC 5.2 to 6.x Construct Mappings

vCAC 5.x admins/architects might get surprised by vCAC 6.x construct naming and think VMware has abundant the constructs vCloud Automation Center used in the past. After a closer look though, you will notice these construct functionality is still the same as they used to be in 5.x and they were just renamed to fit the wider audience vCAC is currently address and to be better aligned with those constructs functionality. The main different is that a new Tenant Construct was introduced in vCAC 6.x which did not exist in 5.2 as vCAC 5.2 did not support  multi-tenancy.

I get asked quite often about the construct mapping between vCAC 5.2 and 6.x. Further, the longer I have been delivering just vCAC 6.x engagements, I seem to start forgetting the contruct mapping between vCloud Automation Center 5.2 and 6.x, so I decided I will document it here for a reference to myself and others looking for such info. Below is the best diagram I was able to find that highlight the construct mapping between vCAC 5.2 and vCAC 6.x:

vCAC 5.2 to vCAC 6.x Construct Mapping

Hope this help those of you familiar with vCAC 5.2 jump on 6.x with confident :).… Read More

vCloud Automation Center 6 Load Balancer configuration

Every Distributed vCloud Automation Center 6 installation involves configuring load balancing at several levels. As load balancers have historically been the responsibility of the network team, many virtualization/server admins are not comfortable with them.  Further, if your load balancing request is not clear and detailed the network team will return the request back and ask for more clarifications and any extra required details. This seems to give many Cloud/Virtualization admins a hard time when trying to complete a vCloud Automation 6 Distributed install. In a try to help the rest of us get the info they need to pass to the network team to configure the load balancing required to complete a vCAC Distributed install, I will try to provide as much details required in this post.

Let’s start by trying to figuring out where do we need to plug in our load balancers, and which components we need to load balance. How about a diagram which present where load balancers fit in a vCAC Distributed install:

vCAC Distributed install Load balancer

 Below is the required configuration for load balancing vCloud Automation Center 6 at each level:

vCloud Automation Center Appliance (VIP):

The vCAC Appliances will be setup in an Active/Active configuration with the below configuration:

  • Transport Protocol: Https (443)
  • Load balancing Method: Least Response Time
  • Enable session affinity or sticky session  (Source IP or Cookies)
  • Health Check URL: https://<Your vCAC Appliance FQDN>      Ex: https://vcacapp01.vt.com

IaaS Windows Virtual Machine (Model Manager and Web Service) – VIP:

  • Transport Protocol: Https (443)
  • Load balancing Method: Least Response Time
  • Enable session affinity or sticky session
  • Health Check URL: https://<Your IaaS Web Machine FQDN>      Ex: https://iaasweb01.vt.com

IaaS Windows Virtual Machine (Manager Service) – VIP:

  • Transport Protocol: Https (443)
  • Load balancing Method: Failover
  • Session affinity or stick session will not be setup for Manager Service as it is active passive and the passive node should have no requests sent to it at all.
Read More

Application Director unable to login to cloud provider

I was delivering an engagement lately where I had to integrate VMware Application Director with vCloud Automation Center 6.0.  I have got to the stage where I needed to connect App Director to a Cloud provider.

Although I was certain, I have entered the correct information on the New Cloud Provider screen as shown below, I kept getting the following error: “Could not connect to the Cloud Provider at https://vtvcaciaas Unable to login to cloud provider. Please verify the user credentials as well as other parameters you entered.”

vCAC fail to connect to Application Director

This error was quite frustrating, as I was sure I have provided the correct information as well verified it over a 100 time. After digging for an answer, I was surprised to know that the User Name here is case sensitive, so basically cloudadmin@vt.com is not equal to CloudAdmin@vt.com. I had to go back to my Active Directory Domain Controller, and search for the user and copy it case sensitive as is to this User Name field which in my case was “CloudAdmin@vt.com”. To my surprise this worked every time.

As most of us are used to none case sensitive user name, where every one knows by now password is case sensitive, I can see this same issue catching many others, and hope this help save you a bit of time :).… Read More

Generating Certificates for vCAC 6 IaaS Web Server & Manager Service

This post will take you through the steps you will need to generate, request, and apply the certificates for both vCloud Automation Center 6 IaaS Web Server as well the Manager Service. Please note this is the third part of a three post vCAC 6 Certificates tutorial, where the first two posts can be found at:

Step 1: Generating the Certificate Requests

To generate the appropriate configuration files:

1. Open a text editor on the system where OpenSSL is installed.

2. Paste the following text into a file, replacing the information in red with that specific to your environment.

[ req ]
default_bits = 2048
default_keyfile = rui.key
distinguished_name = req_distinguished_name
encrypt_key = no
prompt = no
string_mask = nombstr
req_extensions = v3_req
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment, dataEncipherment, nonRepudiation
extendedKeyUsage = serverAuth, clientAuth
subjectAltName = DNS: vtvcacis01, IP:192.168.2.106, DNS: vtvcacis01.vt.com, DNS: vtvcacis01a, IP: 192.168.2.107, DNS: vtvcacis01a.vt.com, DNS: vtvcacis01b, IP: 192.168.2.108, DNS: vtvcacis01b.vt.com
[ req_distinguished_name ]
countryName = CA
stateOrProvinceName = ON
localityName = Toronto
0.organizationName = Lab
organizationalUnitName = vCACIaaS
commonName = vtvcacis01.vt.com

3. Save the file as vcaciaas.cfg (I have saved my file in c:\certs\vcaciaas as you’ll note further on).… Read More

Sponsors