Deployment with the Integrated Solution Installer
After you complete the configuration steps and export the virtual machine as an OVF template, it is ready to install as a plug-in server in your production environment.
Deploy the OVF template in a production environment
- If you prepared the virtual machine in a development environment, copy the OVF file to a location accessible to your production system.
- Use the vSphere Client, connected to your production system, to add the OVF
file to your plug-in deployment.
-
Navigate to
and click the ADD button to install and launch the plug-in in the vCenter Server environment.
-

When the plug-in server deploys to the destination compute resource, the vSphere Client inserts additional connection properties into the OVF. When the virtual machine starts up, these properties enable the plug-in server to connect and authenticate with vCenter Server for the self-registration operation.
Solution Install API
The solution's appliance VM is
responsible for providing information to the vSphere Client about its plug-in
extension. Once the special parameters are injected and the VM is powered on, the
vSphere Client waits to receive a call from the solution appliance on the
solutionInstall.postDeployData.endpoint
(that is,
vCenterIP/api/ui/solutioninstall
). The
solutionInstall.token
should also be present in the headers
(solution-install-token
header
) of the request.
Endpoint definition:
POST /api/ui/solutioninstall
Header | Value | Summary |
---|---|---|
solution-install-token | String | One-off base64-encoded token issued by vSphere UI, used to establish trust |
Body payload JSON follows. For more
details, see data object Extension
in the Web Services API
Reference. All fields down to serverThumbprint
are required,
including ones not so listed in the API reference, such as company
,
client
, and server
. Description
summary
is displayed in the Client Plug-ins view;
label
is currently not used. Server type
and
adminEmail
are optional. If the solution should be available in
the Solution Manager UI, set shownInSolutionManager
true. Format of
privilegeList
and resourceList
module
are as prescribed in the Extension
data
object. If you want to add use cases and payload types later, set
additionalProperties
true.
{ "vcenterExtensions": [ { "extension": { "key": "<plugin id>", "version" : "<plugin version in format a.b.c.d>", "company" : "<company name>", "description" : { "label": "<plugin extension name>", "summary": "<plugin extension summary>" }, "client": [ { "type" : "vsphere-client-remote", "url": "<plugin manifest uri>" }, ... ], "server": [ { "url": "<server1 uri>", "serverThumbprint": "<server1 thumbprint>", "type": "<server purpose type>" "adminEmail": "<email>" }, ... ], "shownInSolutionManager": <true|false>, "faultList": [ { "faultID": "<fault-id>" }, { "faultID": "<fault-id>" } ], "taskList": [ { "taskID": "<task-id>" }, { "taskID": "<task-id>" } ], "eventList": [ { "eventID": "<event-id>" }, { "eventID": "<event-id>" } ], "privilegeList": [ { "privID": "<priv-group-name>.<priv-id>", "privGroupName": "<priv-group-name>" }, { "privID": "<priv-group-name>.<priv-id>", "privGroupName": "<priv-group-name>" } ], "resourceList": [ { "data": [ { "key": "key-1", "value": "value-1" }, { "key": "key-2", "value": "value-2" } ], "locale": "EN_US", "module": "<module>" } ] }, ... additionalProperties: true } ] }