Deploy your Products using the vRealize Suite Lifecycle Manager API

After downloading product binaries and adding locker licenses and certificates to your environment, you are ready to install products. As part of the deployment process, you provide details about the products that you want to install.

You use the Environment API to perform the deployment. The Environment API also includes calls to update, scale out, and delete environments. For property definitions used in the calls, see Properties for Environment Operations.

This procedure shows how to install vRealize Operations Manager. The installation procedure is the same for all products, but the request payload varies. For other request payloads, see Request Body Examples for Product Deployment.

You can also install multiple products with a single command by including the payload for other products in the same environment request. In the product section of the payload, include the payload for each product as a separate object.

Prerequisites

  • Verify that all general prerequisites have been satisfied. See Installing and Importing Products Using vRealize Suite Lifecycle Manager APIs.
  • Verify that you have downloaded binaries for the products that you plan to install. See Create an Environment using vRealize Suite Lifecycle Manager API.
  • Verify that you have the infrastructure and product properties for the products you want to install. See System Requirements.

    To obtain properties, you can use API requests.

    Property API and Description Request
    dataCenterVMid Get all data centers using the Data Center Controller. /lcm/lcops/api/v2/datacenters
    licenseRef: locker:license:<vmid>:<alias> List all the licenses available in the store using the Locker License Controller. /lcm/locker/api/v2/licenses

    The response includes the VMID and alias used to specify the licenseRef property.

    certificate: locker:certificate:<vmid>:<alias> List all the licenses available in the store using the Locker License Controller. /lcm/locker/api/v2/licenses

    The response includes the VMID and alias used to speicfy the certificate property.

    ntp Get product NTP settings using the Settings Controller. /lcm/lcops/api/v2/settings/ntp-servers
    dns Get product DNS settings using the Settings Controller. /lcm/lcops/api/v2/settings/dns

Procedure

  1. Install vRealize Operations Manager.
    curl -X POST \
      '$url/lcm/lcops/api/v2/environments' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -H 'Content-Type: application/json' \
      -d '{
        "environmentName": "vrops_large_deployments",
        "infrastructure": {
          "properties": {
            "dataCenterVmid": "ee6ce426-ca13-4e56-ad9e-c34a4d3d90c2",
            "regionName": "default",
            "zoneName": "default",
            "vCenterName": "LCM-VC2",
            "vCenterHost": "lcm-vc2.sqa.local",
            "vcUsername": "[email protected]",
            "vcPassword": "",
            "acceptEULA": "true",
            "enableTelemetry": "true",
            "adminEmail": "[email protected]",
            "defaultPassword": "",
            "certificate": "",
            "cluster": "Datacenter#Cluster-01",
            "storage": "ISCSI-15TB-04",
            "folderName": "",
            "resourcePool": "",
            "diskMode": "thin",
            "network": "infra-traffic-1024",
            "masterVidmEnabled": "false",
            "dns": "10.141.66.213,10.118.183.252",
            "domain": "sqa.local",
            "gateway": "10.196.57.253",
            "netmask": "255.255.254.0",
            "searchpath": "sqa.local",
            "timeSyncMode": "ntp",
            "ntp": "ntp1.eng.vmware.com",
            "isDhcp": "false"
          }
        },
        "products": [
          {
            "id": "vrops",
            "version": "8.0.1",
            "properties": {
              "licenseRef": "locker:license:eab62-bc21-643cf0b9cafa:license",
              "certificate": "locker:certificate:f4e98b983:vmware",
              "productPassword": "locker:password:d21-d9de2c10:VMware1!",
              "disableTls": "",
              "timeSyncMode": "ntp",
              "masterVidmEnabled": false,
              "ntp": "ntp1.eng.vmware.com",
              "affinityRule": false,
              "configureAffinitySeparateAll": "true",
              "deployOption": "large"
            },
            "clusterVIP": {
              "clusterVips": []
            },
            "nodes": [
              {
                "type": "remotecollector",
                "properties": {
                  "vmName": "vrops-remotecollector",
                  "hostName": "sqa.local",
                  "deployOption": "smallrc",
                  "ip": "4.4.4.4",
                  "gateway": "2.2.2.2",
                  "domain": "2.2.2.2",
                  "searchpath": "2.2.2.2",
                  "dns": "10.141.66.213",
                  "netmask": "2.2.2.2",
                  "extendedStorage": "",
                  "timeZone": "",
                  "ntp": "",
                  "vCenterHost": "lcm-vc1.sqa.local",
                  "cluster": "Datacenter-01#Cluster-01",
                  "resourcePool": "",
                  "folderName": "",
                  "network": "dvs-55-Network-314b11d9-c958-4aa2-af98-cd5439a970d7",
                  "storage": "ISCSI-15TB-02",
                  "diskMode": "thin",
                  "contentLibraryItemId": "",
                  "vCenterName": "lcm-vc1",
                  "vcUsername": "[email protected]",
                  "vcPassword": "locker:password:4984d8e4-825b-4694-99cf-db80b41b5ac2:vc-password"
                }
              },
              {
                "type": "master",
                "properties": {
                  "vmName": "mastervmname",
                  "hostName": "lcm-57-68.sqa.local",
                  "ip": "10.196.57.68"
                }
              },
              {
                "type": "replica",
                "properties": {
                  "vmName": "replicavmname",
                  "hostName": "lcm-12-34.sqa.local",
                  "ip": "10.196.12.34"
                }
              },
              {
                "type": "data",
                "properties": {
                  "vmName": "datavmname",
                  "hostName": "lcm-12-35.sqa.local",
                  "ip": "10.196.12.35"
                }
              }
            ]
          }
        ]
      }' | jq "."
    Note:
    • To deploy nodes with a different vCenter Server, add nodes of the remotecollector node type and list properties for that node.
    • The vRealize Operations Manager replica node is for high availability. You can perform a high availability deployment during either the installation flow or a scale-out flow.
    The request triggers the API. The response shows the request ID.
    {
        "requestId":"1dac194a-6e1f-4772-a97d-af300ad5086c"
    }
  2. Track your request.
    curl -X GET '$url /lcm/request/api/v2/requests/$requestId' -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' | jq "."
    The request might take some time. After completion, the product is installed in vRealize Suite Lifecycle Manager.
    ...
    },
      "outputMap": {},
      "state": "COMPLETED",
      "executionId": "61274f3c-20cc-47a1-90ec-130635edb7d1",
    ...
  3. To verify that vRealize Operations Manager has been imported, list all environments.
    curl -X GET '$url/lcm/lcops/api/v2/environments' -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' | jq "."
    A snippet of the response shows the vRealize Operations Manager product that you installed.
          {
            "id": "vrops",
            "version": "8.0.1",
            "patchHistory": null,
            "snapshotHistory": null,
            "logHistory": null,
            "clusterVIP": null,
            "nodes": [
              {
                "type": "remotecollector",
                "properties": {
                  "vmName": "vrops-remotecollector",
                  "hostName": "sqa.local",
                  "deployOption": "smallrc",
                  "ip": "4.4.4.4",
                  "gateway": "2.2.2.2",
                  "domain": "2.2.2.2",
                  "searchpath": "2.2.2.2",
                  "dns": "10.141.66.213",
                  "netmask": "2.2.2.2",
                  "extendedStorage": "",
                  "timeZone": "",
                  "ntp": "",
                  "vCenterHost": "lcm-vc1.sqa.local",
                  "cluster": "Datacenter-01#Cluster-01",
                  "resourcePool": "",
                  "folderName": "",
                  "network": "dvs-55-Network-314b11d9-c958-4aa2-af98-cd5439a970d7",
                  "storage": "ISCSI-15TB-02",
                  "diskMode": "thin",
                  "contentLibraryItemId": "",
                  "vCenterName": "lcm-vc1",
                  "vcUsername": "[email protected]",
                  "vcPassword": "locker:password:4984d8e4-825b-4694-99cf-db80b41b5ac2:vc-password"
                }
              },
              {
                "type": "master",
                "properties": {
                  "vmName": "mastervmname",
                  "hostName": "lcm-12-33.sqa.local",
                  "ip": "10.196.12.33"
                }
              },
              {
                "type": "replica",
                "properties": {
                  "vmName": "replicavmname",
                  "hostName": "lcm-12-34.sqa.local",
                  "ip": "10.196.12.34"
                }
              },
              {
                "type": "data",
                "properties": {
                  "vmName": "datavmname",
                  "hostName": "lcm-12-35.sqa.local",
                  "ip": "10.196.12.35"
                }
              }
            ] 
          }
        ],      
        "properties": {
            "licenseRef": "locker:license:eab62-bc21-643cf0b9cafa:license",
            "certificate": "locker:certificate:f4e98b983:vmware",
            "productPassword": "locker:password:d21-d9de2c10:VMware1!",
            "disableTls": "",
            "timeSyncMode": "ntp",
            "masterVidmEnabled": false,
            "ntp": "ntp1.eng.vmware.com",
            "affinityRule": false,
            "configureAffinitySeparateAll": "true",
            "deployOption": "large"
          },

What to do next

If the deployment request succeeds, the product is installed. However, if the deployment request fails, diagnose the problem before retrying your request. See Retry an Install or Import Request vRealize Suite Lifecycle Manager API. Creating a log bundle can also help to troubleshoot an unsuccessful deployment. See How do I generate a log bundle using the vRealize Suite Lifecycle Manager API.