As a DevOps administrator, you create a publisher in vCenter Server to store all captured vSphere templates. Then you configure the publisher endpoint in vRealize Suite Lifecycle Manager. As a developer, you create a vSphere capture endpoint.

In addition, you can create a vSphere test and deploy endpoint. But because vRealize Suite Lifecycle Manager uses the vSphere subscriber for versioning templates, your DevOps administrator must use vCenter Server to create a subscriber to the publisher before you create your endpoint. In this way, you can configure your test and deploy endpoint with the subscriber that has template support.

Prerequisites

  • Verify that the appliance name and fully qualified domain name of the vRealize Suite Lifecycle Manager instance are available.
  • Verify that the URL variable is assigned.
    url='https://LCM-Hostname'
  • Verify that the DevOps administrator has used vCenter Server to create the publisher that will be used to store templates captured from various vSphere capture points.

Procedure

  1. As a DevOps administrator, configure a vSphere publisher endpoint in vRealize Suite Lifecycle Manager. For the server, use the FQDN, IP address, or host name of the vCenter Server that you are adding to vRealize Suite Lifecycle Manager. The parameter contentLibraryId identifies the publisher content library.
    curl -X POST \
      '$url/lcm/cms/api/v1/endpoints' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6Vk13YXJlMSE=' \
      -H 'Content-Type: application/json' \
      -d '{
        "supportCapture":false,
        "supportTest":false,
        "supportRelease":false,
        "supportTemplates":true,
        "supportOnlySourceControlledContent":false,
        "storeTemplates":false,
        "requestedBy":"admin@local",
        "name":"system-virtualcenter",
        "enabled":false,
        "category":"vSphere",
        "systemEndpoint":true,
        "server": "{<VC_IP_FQDN>}",
        "userName": "{<vcUsername>}",
        "password": "{<vcPassword>}",
        "reviewRequired":false,
        "contentLibraryId":"6036cf9a-2833-40a0-9c46-13dbd567e5e1",
        "endpointType":"SERVER_ENDPOINT",
        "userIdentity":"admin@local",
        "contentLibraryName":""
    }' | jq "."
  2. Examine the response to check the progress of the request and get the reference ID.
    {
      requestId":"eb405741-81fa-479c-912e-875644a1e392",
      "status":"IN_PROGRESS",
      "message":"Endpoint Successfully Created",
      "referenceId":"system-virtualcenter"
    }
  3. Assign the reference ID of the endpoint to a variable name.
    vSpherePublisherEndpoint = '<referenceID>'
  4. Get information about the vSphere publisher endpoint.
    curl -X GET \
      '$url/lcm/cms/api/v1/endpoints/{$vSpherePublisherEndpoint}' \
      -H 'Accept: application/json' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6Vk13YXJlMSE=' \
      -H 'Content-Type: application/json' | jq "."
  5. To validate the information provided to create the vSphere publisher endpoint, examine the response.
    {
       "id":"system-virtualcenter",
       "createdOn":1579251621392,
       "lastUpdatedOn":1579251621736,
       "errorMessage":"Endpoint policies are not configured",
       "supportCapture":false,
       "supportTest":false,
       "supportRelease":false,
       "supportTemplates":true,
       "supportOnlySourceControlledContent":false,
       "storeTemplates":false,
       "requestedBy":"admin@local",
       "name":"system-virtualcenter",
       "enabled":false,
       "category":"vSphere",
       "systemEndpoint":true,
       "server": "vCserver.my.company.com",
       "userName": "user@my.company.local",
       "password": "example_user_password",
       "reviewRequired":false,
       "contentLibraryId":"6036cf9a-2833-40a0-9c46-13dbd567e5e1",
       "endpointType":"SERVER_ENDPOINT",
       "userIdentity":"admin@local"
    }
  6. As a developer, create a vSphere endpoint to capture templates.
    curl -X POST \
    '$url/lcm/cms/api/v1/endpoints' \
    -H 'Authorization: Basic YWRtaW5AbG9jYWw6Vk13YXJlMSE=' \
    -H 'Content-Type: application/json' \
    -d '{
        "supportTemplates": false,
        "tagNames": ["tag1"],
        "endpointType": "CONTENT_ENDPOINT",
        "category": "vSphere",
        "name": "vc-endpoint",
        "server": "{<VC_IP_FQDN>}",
        "userName": "{<vcUsername>}",
        "password": "{<vcPassword>}",
        "supportCapture": true,
        "supportRelease": false
    }' | jq "."
  7. Examine the response to check the progress of the request and to get the reference ID.
    {
      "requestId":"eb405741-81fa-479c-912e-875644a1e392",
      "status":"IN_PROGRESS",
      "message":"Endpoint Successfully Created",
      "referenceId":"06f793ba-606f-4838-803d-c6819255d50b"
    }
  8. Assign the reference ID of the endpoint to a variable name.
    vSphereCaptureEndpoint = '<referenceID>'
  9. Get information about the vSphere capture endpoint.
    curl -X GET \
      '$url/lcm/cms/api/v1/endpoints/{$vSphereCaptureEndpoint}' \
      -H 'Accept: application/json' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6Vk13YXJlMSE=' \
      -H 'Content-Type: application/json' | jq "."
  10. To validate the information provided to create the vSphere capture endpoint, examine the response.
    {
       "id":"06f793ba-606f-4838-803d-c6819255d50b",
       "createdOn":1579251801788,
       "lastUpdatedOn":1579251801870,
       "supportCapture":true,
       "supportTest":false,
       "supportRelease":false,
       "supportTemplates":false,
       "supportOnlySourceControlledContent":false,
       "storeTemplates":false,
       "requestedBy":"admin@local",
       "name":"vc-endpoint",
       "enabled":true,
       "category":"vSphere",
       "systemEndpoint":false,
       "server": "vCserver.my.company.com",
       "userName": "user@my.company.local",
       "password": "example_user_password",
       "reviewRequired":false,
       "endpointType":"CONTENT_ENDPOINT",
       "userIdentity":"admin@local"
    }
  11. As a DevOps administrator, use vCenter Server to configure a library that subscribes to the vSphere environment where the developer wants to deploy templates.
  12. As a developer, add a vSphere endpoint that is configured with vCenter Server details to deploy a template to a network, datastore, or folder.
    curl -X POST \
      '$url/lcm/cms/api/v1/endpoints' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6Vk13YXJlMSE=' \
      -H 'Content-Type: application/json' \
      -d '{
        "supportCapture": false,
        "supportTest": true,
        "supportRelease": true,
        "supportTemplates": true,
        "supportOnlySourceControlledContent": false,
        "storeTemplates": false,
        "requestedBy": "admin@local",
        "name": "lcm-vc1",
        "enabled": true,
        "category": "vSphere",
        "systemEndpoint": false,
        "server": "{<VC_IP_FQDN>}",
        "userName": "{<vcUsername>}",
        "password": "{<vcPassword>}",
        "targetDatacenter": "example_DC",
        "vcTargetHostName": "example_cluster,
        "vmTargetDatastore": "example_datastore",
        "vmTargetFolderPath": "/example_folder/",
        "vmTargetNetwork": "example_network",
        "reviewRequired": false,
        "endpointType": "CONTENT_ENDPOINT",
        "userIdentity": "admin@local",
        "tagNames": []
    }' | jq "."
  13. Examine the response to check the progress of the request and to get the reference ID.
    {
      "requestId":"eb405741-81fa-479c-912e-875644a1e392",
      "status":"IN_PROGRESS",
      "message":"Endpoint Successfully Created",
      "referenceId":"06f793ba-606f-4838-803d-c6819255d50b"
    }
  14. Assign the reference ID of the endpoint to a variable name.
    vSphereDeployEndpoint = '<referenceID>'
  15. Get information about the vSphere deploy endpoint.
    curl -X GET \
      '$url/lcm/cms/api/v1/endpoints/{$vSphereDeployEndpoint}' \
      -H 'Accept: application/json' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6Vk13YXJlMSE=' \
      -H 'Content-Type: application/json' | jq "."
  16. To validate the information provided to create the vSphere deploy endpoint, examine the response.
    {
        "id":"06f793ba-606f-4838-803d-c6819255d50b",
        "createdOn":1579251801788,
        "lastUpdatedOn":1579251801870,
        "supportCapture": false,
        "supportTest": true,
        "supportRelease": true,
        "supportTemplates": true,
        "supportOnlySourceControlledContent": false,
        "storeTemplates": false,
        "requestedBy": "admin@local",
        "name": "lcm-vc1",
        "enabled": true,
        "category": "vSphere",
        "systemEndpoint": false,
        "server": "vCserver.my.company.com",
        "userName": "user@my.company.local",
        "password": "example_user_password",
        "targetDatacenter": "example_DC",
        "vcTargetHostName": "example_cluster,
        "vmTargetDatastore": "example_datastore",
        "vmTargetFolderPath": "/example_folder/",
        "vmTargetNetwork": "example_network",
        "reviewRequired": false,
        "endpointType": "CONTENT_ENDPOINT",
        "userIdentity": "admin@local",
        "tagNames": []
    }

What to do next

Use your endpoint to manage the following types of vSphere content:
  • vSphere-Template
  • vSphere-Custom Spec