A really neat capability that is available in some of VMware's Virtual Appliance is a feature called vCenter Extension vService which leverages the vCenter Solutions Manager and vServices SDK. This feature allows a virtual appliance solution to automatically register itself as an extension with vCenter Server without requiring user to provide vCenter Server connection information and thus simplifying the deployment of a virtual appliance based solution. Some examples of VMware Virtual Appliances that can advantage of this feature are vSphere Replication and vSphere Infrastructure Navigator. If you have deployed either of these solutions, you may have seen a screenshot like the one shown below.
When going through the vSphere C#/Web Client to deploy a virtual appliance that requires vCenter Extension vService, the process is quite simple. You simply click on the drop down menu and select the one and only option as seen in the screenshot above. However, if you are looking to automate the virtual appliance deployment using something like ovftool, you might be asking how do you go about configuring this parameter? This was actually a recent question that I received on an older blog post regarding the automated deployment of vSphere Infrastructure Navigator.
The good news is that ovftool provides a way to configure the vCenter Extension vService using an option called --vService and expected syntax is the following:
--vService:<dependencyId>=<providerId>
To find the dependencyId, you will need to inspect the virtual appliance OVF/OVA. You can simply do this by running ovftool and passing in the OVF/OVA as input. Using the latest vSphere Infrastructure Navigator 5.8 OVA, the dependencyId is simply named "installation" as seen in the VService Dependency section in the screenshot below.
The providerId refers to the vCenter Server and from what I can tell, this statically defined as com.vmware.vim.vsm:extension_vservice
Putting all this together, if you wish to configure the vService, you will need to pass in the following option to the ovftool:
--vService:installation=com.vmware.vim.vsm:extension_vservice
John says
Hi, Im trying to deploy vSphere Replication with ovftool, without any luck so far. VMware support say it isn't supported. But if i skip the IP settings properties i can deploy the ovf and later set the ip in the settings of the vm. But i need to configure the vcenter extension service.
I tried to add "--vService=installation:com.vmware.vim.vsm:extension_vservice
but i get: Error Unknown option: "vService"
You know if this has changed with later version of ovftool and version 6 of vcenter?
Using ovftool 4.1.
William Lam says
This is completely supported. Please provide me with the SR where they're stating this, I would definitely like to get this clarified internally.
In terms of the error you're having, its quite possible that vService ID might have changed with the newer version of VR. You can easily check by inspecting the OVF simply by passing in the OVF/OVA to ovftool and it should parse it with some output.
I assume you're deploying to a vCenter Server and not directly to ESXi right?
John says
I don't have access to the SR right now, will send it to you tomorrow.
I am trying to deploy to vCenter server. I checked the ovf and the ID is installation.
I want to deploy replication server with ovftool and i want to deploy with static ip not using IP Pool.
I get these errors.
Property vami.netmask0.vSphere_Replication_Appliance is not user configurable
Property vami.DNS0.vSphere_Replication_Appliance is not user configurable
Property vm.name is not user configurable
I'm using --ipAllocationPolicy=fixedPolicy
William Lam says
John,
I just noticed that you're trying to configure other OVF properties for VR which isn't configurable. vSphere Replication requires the use of an IP Pool, that's why it's only asking for the "IP Address" as the rest of the networking configurations would be pulled from vCenter Server via IP Pools. I'm not sure if you've deployed VR before, but give it a go using the vSphere Web/C# Client and once you've gone through that, then automating it is the same process. This is not an issue with ovftool
John says
First i must say big thanks for the help and a great blog with lots of cool tips and tricks!
I have deployed VR before using Both web/c# client but not with any IP Pool setup. The deploymemt using web client and in network setting choosing static IP, gives you the options to enter netmask, gateway, DNS but not ip address. When pressing next you get an error saying some properties are missing values. Those are password for the appliance, ntp servers and IP Address.
Using ovftool im only able to configure IP Address, thought i would be able to configure the same that i can configure during web deployment.
So if i get the vService option to work, i can automate the install if i create an IP pool first? Even though i dont need one using web client?
William Lam says
Proper vSphere Replication deployment requires IP Pools, that's how it was built. Although the UI allows you to tweak how the networking gets set, its how the appliance should be deployed so I have to recommend against that else you would be on your own.
IP Pools can be automated but you'll have to use the vSphere APIs to do so, this is outside of the ovftool scope
John says
I got the --vService to work. I had switched the = and :.
Now i only have to figure out how to create an Network Protocol Profile and associate it with the port group used using some script. I noticed that IP Pool is not needed since it was possible to specify ip with --prop:vamp.ip0.vSphere_Replication_Appliance.
I still think its weird that the properties i can configure during deploy using web client isn't available to ovftool (DNS Server, Netmask, Gateway)
I can't find any document stating that IP pools is required for deployment.
VR Document 6.0 say "vSphere Replication supports both DHCP and static IP addresses."
Dinesh says
Thanks so much for writing the steps. Very helpful ... For me, vService Dependency : Required field shows : false.
on adding the command : --vService:installation=com.vmware.vim.vsm:extension_vservice it prompted me with error : Error: Unexpected option: --vService:installation=com.vmware.vim.vsm:extension_vservice
Not sure about the issue here. Any help would be highly appreciated ...
Only difference I see from the screenshot you put on passing ovf to ovftool to know the dependency, Required is True in the screenshot while it is shown as False in my case.
tgbauer says
Worked like a charm for VMware Integrated OpenStack Manager vApp ( VMware-OpenStack-2.5.0.0-3955000_OVF10.ova )