Create an Environment using vRealize Suite Lifecycle Manager API

Before installing products, you download the product binaries and add licenses. To ensure a secure connection, you add an encryption certificate to your environment.

You can get product binaries using a My VMware account or directly from local or NFS sources. To add licenses to your locker store, you submit a request with your My VMware account information or with license information from a text file. The following procedure includes steps that show how to get product binaries and add licenses with or without a My VMware account.

Prerequisites

Procedure

  1. For each of the products you plan to install, list the version numbers.
    curl -X GET \
      '$url/lcm/lcops/api/v2/policy/products/{productId}/versions' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -H 'Accept: application/json' | jq "."
    The response shows the available versions, such as for vRealize Automation.
    [
      "8.0.1",
      "8.1.0",
      "8.2.0"
    ]
  2. For each of the products and versions you plan to install, list the supported node types.
    curl -X GET \
      '$url/lcm/lcops/api/v2/policy/products/{productId}/versions/{version}/node-types' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -H 'Accept: application/json' | jq "."
    The response shows the supported node type, such as for vRealize Automation 8.2.0.
    [
      "vrava-primary",
      "vrava-secondary"
    ]
  3. If you have a My VMware account, you can get the product binaries and add the licenses associated with your account.
    1. List all product binaries associated with your My VMware account.
      curl -X GET \
        '$url/lcm/lcops/api/v2/settings/my-vmware/product-binaries' \
        -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
        -H 'Accept: application/json' | jq "."
    2. Examine the response to find the product binaries that you want to download.
      ...
        {
          "productId": "vidm",
          "productVersion": "3.3.2",
          "productBinaryType": "Install",
          "productBinaryPath": null,
          "componentName": null,
          "mappingType": null,
          "productName": "VMware Identity Manager",
          "requestId": null,
          "removeBinary": null
        },
        {
          "productId": "vra",
          "productVersion": "8.0.1",
          "productBinaryType": "upgrade",
          "productBinaryPath": null,
          "componentName": null,
          "mappingType": null,
          "productName": "vRealize Automation",
          "requestId": null,
          "removeBinary": null
        }
      ...
    3. With the output from the response in the request body, download the product binaries.
      curl -X POST \
        '$url/lcm/lcops/api/v2/settings/my-vmware/product-binaries/download' \
        -H 'Accept: application/json' \
        -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
        -H 'Content-Type: application/json' \
        -d '[
          {
            "productId": "vidm",
            "productVersion": "3.3.2",
            "productBinaryType": "Install",
            "productBinaryPath": null,
            "componentName": null,
            "mappingType": null,
            "productName": "VMware Identity Manager",
            "requestId": null,
            "removeBinary": null
          },
          {
            "productId": "vra",
            "productVersion": "8.0.1",
            "productBinaryType": "upgrade",
            "productBinaryPath": null,
            "componentName": null,
            "mappingType": null,
            "productName": "vRealize Automation",
            "requestId": null,
            "removeBinary": null
          }' 
        ]| jq "."
       
      The request triggers the API. The response shows the request ID.
      {
        "requestId": "61c2fcc0-b6c2-4708-85fc-0a0e9112207d"
      }
      
      You can use this request ID to track the status of the download.
      curl -X GET '$url /lcm/request/api/v2/requests/$requestId' -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' | jq "."
    4. Get your My VMware account information.
      curl -X GET \
        '$url/lcm/lcops/api/v2/settings/my-vmware/accounts' \
        -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
        -H 'Accept: application/json' | jq "."
      The response shows your My VMware account information.
      {
          "userName": "[email protected]",
          "password": "MyVMwarePassword"
      }
    5. Using your My VMware account information, add all licenses to your locker store.
      curl -X POST \
        '$url/lcm/lcops/api/v2/settings/my-vmware/accounts' \
        -H 'Accept: application/json' \
        -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
        -H 'Content-Type: application/json' \
        -d '{
          "userName": "[email protected]",
          "password": "MyVMwarePassword"
        }'| jq "."
       
  4. If you do not have a My VMware account, you can get and download the product binaries associated with the local or NFS source mappings.
    1. List the product binaries.
      To get product binaries associated with local or NFS source mappings, the source types are:
      • "sourceType": "LOCAL"
      • "sourceType": "NFS"
      curl -X POST \
        '$url/lcm/lcops/api/v2/settings/product-binaries' \
        -H 'Accept: application/json' \
        -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
        -H 'Content-Type: application/json' \
        -d '{
          "sourceLocation": "10.153.164.9:/vCloudSuiteDeployment/binaries/OVA",
          "sourceType": "NFS"
         } | jq "."
       
      The response shows all the product binaries that are present at the NFS location, such as in the following code snippet.
      ...
        {
          "name": "Prelude_VA-8.0.0.6619-14842736_OVF10.ova",
          "filePath": "/data/nfsfiles/Prelude_VA-8.0.0.6619-14842736_OVF10.ova",
          "type": "install"
        },
        {
          "name": "Prelude_VA-8.0.1.7355-15294185_OVF10.ova",
          "filePath": "/data/nfsfiles/Prelude_VA-8.0.1.7355-15294185_OVF10.ova",
          "type": "install"
        },
      ...
    2. Download the product binaries that you want.
      curl -X POST \
        '$url/lcm/lcops/api/v2/settings/product-binaries/download' \
        -H 'Accept: application/json' \
        -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
        -H 'Content-Type: application/json' \
        -d '[
         {
          "name": "Prelude_VA-8.0.0.6619-14842736_OVF10.ova",
          "filePath": "/data/nfsfiles/Prelude_VA-8.0.0.6619-14842736_OVF10.ova",
          "type": "install"
        },
        {
          "name": "Prelude_VA-8.0.1.7355-15294185_OVF10.ova",
          "filePath": "/data/nfsfiles/Prelude_VA-8.0.1.7355-15294185_OVF10.ova",
          "type": "install"
        }
      ]| jq "."
      The request triggers the API. The response shows the request ID.
      {
        "requestId": "d1b7341c-e3bb-4049-b5a8-1bf9118c79ab"
      }
      
      You can use this request ID to track the status of the download.
      curl -X GET '$url /lcm/request/api/v2/requests/$requestId' -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' | jq "."
  5. (Optional) If you have a license in a text file that was not added with your My VMware account, validate and add it to your locker store.
    curl -X POST \
      '$url/lcm/lcops/api/v2/license/validate-and-add' \
      -H 'Accept: application/json' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -H 'Content-Type: application/json' \
      -d '{
        "alias": "license1",
        "serialKey": "AB0DC-EF280-48JH1-00024-1JK"
    }'| jq "."
    The request triggers the API. The response includes a request ID.
    {
      "vmid": "69def4ac-782f-4af7-9ce7-99a7b8557a09",
      "requestId": "071d88e6-6ef3-4ff3-abd9-21420ff4cca4",
      "action": "VALIDATE_AND_ADD_LICENSE",
      "message": "Validate and Add request queued for license license1"
    }
    You can use this request ID to track the status of the download.
    curl -X GET '$url /lcm/request/api/v2/requests/$requestId' -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' | jq "."
  6. Generate a new certificate for your locker.
    For alias, choose a value that helps to remind you of the locker password.
    curl -X POST \
      '$url/lcm/locker/api/v2/certificates' \
      -H 'Accept: application/json' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -H 'Content-Type: application/json' \
      -d '{
        "alias": "cert2",
        "c": "certificate2",
        "cN": "certificate2",
        "ip": ["10.196.15.13"],
        "host": ["*.sqa.local"],
        "cN": "vmware",
        "oU": "vmware",
        "size": "2048",
        "o": "vmware",
        "l": "IN",
        "sT": "IN",
        "c": "IN"
      }'| jq "."
     
    The response body verifies details about the certificate, such as validity period and date of issue.
    ...
      "validity": {
        "period": "1 year, 11 months and 29 days",
        "expiresOn": "2022-07-27T01:12:21.000+0000",
        "issuedOn": "2020-07-27T01:12:21.000+0000",
        "healthy": true
      },
    ...

What to do next

You are ready to deploy products in your environment. See Deploy your Products using the vRealize Suite Lifecycle Manager API.