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

In addition, you can create a vSphere test and deploy endpoint. But because VMware Aria Suite Lifecycle uses the vSphere subscriber for versioning templates, your DevOps administrator must use vCenter 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 VMware Aria Suite Lifecycle instance are available.
  • Verify that the URL variable is assigned.
    url='https://LCM-Hostname'
  • Verify that the DevOps administrator has used vCenter 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 VMware Aria Suite Lifecycle. For the server, use the FQDN, IP address, or host name of the vCenter that you are adding to VMware Aria Suite Lifecycle. The parameter contentLibraryId identifies the publisher content library.
    curl -X POST \
      '$url/lcm/cms/api/v1/endpoints' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -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 YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -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": "[email protected]",
       "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 YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
    -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 YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -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": "[email protected]",
       "password": "example_user_password",
       "reviewRequired":false,
       "endpointType":"CONTENT_ENDPOINT",
       "userIdentity":"admin@local"
    }
  11. As a DevOps administrator, use vCenter 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 details to deploy a template to a network, datastore, or folder.
    curl -X POST \
      '$url/lcm/cms/api/v1/endpoints' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -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 YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -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": "[email protected]",
        "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