You can use the API to apply a system patch on vRealize Suite Lifecycle Manager.

To apply a system patch that patches vRealize Suite Lifecycle Manager, you first create a snapshot of the current vRealize Suite Lifecycle Manager appliance. Then you obtain the system patch ID and apply the patch.

Prerequisites

Procedure

  1. Log in to the vCenter Server to take a snapshot of the vRealize Suite Lifecycle Manager appliance. You can use this snapshot to perform a rollback if a failure occurs during patching.
  2. List the patches.
    curl -X GET \
      '$url/lcm/lcops/api/v2/settings/patch-binaries' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -H 'Content-Type: application/json' | jq "."
    Check the response to find a system patch that is downloaded and available to apply. A snippet of the response shows the patch ID and "patchDownloadStatus": "DOWNLOAD".
    ...    
          "patchInfo": {
          "name": "vRealize Lifecycle Manager, version 8.4.0 - HF1",
          "summary": "vRealize Lifecycle Manager, version 8.4.0 - HF1 Patch",
          "description": "vRealize Lifecycle Manager, version 8.4.0 - HF1 Patch",
          "kbUrl": "https://kb.vmware.com/s/article/76805",
          "eulaFile": null,
          "category": "bugfix",
          "urgency": "critical",
          "releaseType": "patch",
          "releaseDate": 1590039695062,
          "additionaInfo": {}
        },
        "metadataId": "vrlcm-8.4.0-HF1",
        "metadataVersion": "1",
        "patchId": "d5b90274-3906-43b8-8eb3-7f73e76c2iu9",
        "patchBundleCreationDate": 1590039921132,
        "selfPatch": false,
        "product": {
          "productId": "vrlcm",
          "productName": "vRealize Lifecycle Manager",
          "productVersion": "8.4.0",
          "supportedVersions": [
            "8.4.0"
          ],
       ...
       },
       "patchFileName": "vrlcm-8.4.0-HF1.patch",
       "patchSize": 6073307467,
       "patchSha256sum": "9fed5f30f7c2967cdaac3b914a49b3aaec6520c4er422b90cd5703f9794e5",
       "patchRunningcounter": 1,
       "patchStatus": "ACTIVE",
       "patchDownloadStatus": "DOWNLOAD",
       "extract": false,
       "patchCounter": "1"
    ...
  3. Assign the patch ID variable for the system patch.
    syspatchId = "d5b90274-3906-43b8-8eb3-7f73e76c2iu9"
  4. Apply the system patch.
    curl -X POST \
      '$url/lcm/lcops/api/v2/system-patch/$syspatchId' \
      -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' \
      -H 'Content-Type: application/json' \
     | jq "."
    The request triggers the API. The response shows the request ID.
    {
        "requestId":"poiu5678a-6e1f-4772-a97d-af300ad8888c"
    }
  5. Assign the request ID variable.
    requestId = "poiu5678a-6e1f-4772-a97d-af300ad8888c"
  6. vRealize Suite Lifecycle Manager services are not reachable while the patch is applied, so wait approximately ten minutes before polling the request.
    curl -X GET '$url /lcm/request/api/v2/requests/$requestId' -H 'Authorization: Basic YWRtaW5AbG9jYWw6VGhpc0lzUGFzc3dvcmQ=' | jq "."
    After completion, the system patch is applied.
    ...
    },
      "outputMap": {},
      "state": "COMPLETED",
      "executionId": "94301f3c-20cc-47a1-90ec-130635edb7d1",
    ...