Using the vRealize Suite Lifecycle Manager (vRSLCM) API for vRSLCM Day 2 Operations - Managing Datacenters
vRealize Suite Lifecycle Manager vRSLCM API
Published on 30 November 2021 by Christopher Lewis. Words: 1411. Reading Time: 7 mins.
In this post, we will look at how we can use the VMware vRealize Suite Lifecycle Manager (vRSLCM) API to complete Day 2 Operations for managing Datacenter objects in vRSLCM.
Within vRSLCM, a Datacenter is a logical representation of a physical datacenter location and associated vCenter Servers. Without defining a Datacenter and vCenter Server we canot deploy application such as vRealise Automation.
We are going to be using cURL to complete API calls to complete the following operational tasks for managing Datacenters:
- Viewing existing vRSLCM Datacenters
- Creating a vRSLCM Datacenter
- Adding a vCenter Server to the vRSLCM Datacenter
- Viewing the vCenter Servers in a vRSLCM Datacenter
- Deleting a vCenter Server from a vRSLCM Datacenter
- Deleting a vRSLCM Datacenter
This post is a part of a series that covers how we can install, configure and manage the vRealize Suite using the vRSLCM API.
Prerequisites
The following prerequisites are required for this blog post:
- vRSLCM 8.6.x (or above) has been deployed successfully within the environment.
- vRSLCM local administrator (admin@local) credentials.
- vCenter Administratior Account credentials have been added to vRSLCM Locker (see post Using the vRealize Suite Lifecycle Manager (vRSLCM) API to manage Locker Credentials on how to do this with the API)
Walkthrough
Viewing existing Datacenters
Overview
We can view existing Datacenter objects using the API. One of the main reason to do this is to make sure we are not using the same datacenter name twice!
If we do try to use the same name, we will get a LCM_DATACENTER_API_ERROR0002 - Data Center already exists error. This isn’t fatal, we just need to be mindful!
API Request
The following REST API request is required:
- Request Type: GET
- Request URL: https://{vrslcm.fqdn}/lcm/lcops/api/v2/datacenters
- Request Header(s):
- Accept: application/json
- Content-Type: application/json
- Authorization: Basic {admin@local credential hash}
- Request Body Values:
- None
API Example
An example cURL command for this REST API is:
curl --location --request GET 'https://{vrslcm.fqdn}/lcm/lcops/api/v2/datacenters' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {admin@local credential hash}'
Note: The –insecure flag is also required if you are using self-signed SSL certificates.
API Response
The response returned from the REST API looks like this (when formatted in JSON):
[
{
"dataCenterVmid": "9ebafd91-7472-4cf6-b707-4bc6c4c58283",
"dataCenterName": "Edinburgh",
"primaryLocation": "Edinburgh;Scotland;GB;55.953251;-3.188267"
}
]
As we can see, we currently have one existing Datacenter. Let us go ahead and create another one.
Creating a Datacenter
Overview
In this section we are going to use the vRSLCM API to create a datacenter object. This is a prerequisite to being able to deploy products in vRSLCM.
API Request
The following REST API request is required:
- Request Type: POST
- Request URL: https://{vrslcm.fqdn}/lcm/lcops/api/v2/datacenters
- Request Header(s):
- Accept: application/json
- Content-Type: application/json
- Authorization: Basic {insert credential hash}
- Request Body Values:
- dataCenterName - the user friendly name of the Datacenter.
- primaryLocation - the physical location of the Datacenter, in the format of
{Town};{Province/State};{Country Code};{Latitude};{Longitude}
.
API Example
An example cURL command for this REST API is:
curl --location --request POST 'https://{vrslcm.fqdn}/lcm/lcops/api/v2/datacenters' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {admin@local credential hash}' \
--data-raw '{
"dataCenterName": "London",
"primaryLocation": "London;England;GB;51.50853;-0.12574"
}'
Note: The –insecure flag is also required if you are using self-signed SSL certificates.
API Response
The expected response returned from a successful request (Status Code=200) will be something like:
{
"dataCenterVmid": "94e796dd-c9ee-4a70-a1ab-13d3a1e27779",
"dataCenterName": "London",
"primaryLocation": "London;England;GB;51.50853;-0.12574"
}
If we logged into vRSLCM using the UI, we would now see the following Datacenter locations configured:
Adding a vCenter to a Datacenter
Overview
Once we have a vRSLCM Datacenter object, we also need to add a vCenter Server to that datacenter so we can deploy the vRealize Suite products.
API Request
The following REST API request is required to add a vCenter Server to an existing Datacenter:
- Request Type: POST
- Request URL: https://{vrslcm.fqdn}/lcm/lcops/api/v2/datacenters/{vmid}/vcenters
- vmid - the unique id of the Datacenter that the vCenter Server will be added to.
- Request Header(s):
- Accept: application/json
- Content-Type: application/json
- Authorization: Basic {admin@local credential hash}
- Request Body Values:
- vCenterName - the user friendly name of the vCenter Server.
- vCenterHost - the FQDN of the vcenter server.
- vcUsername - the vCenter username that has been assigned a role with sufficient priviliges in vCenter Server.
- vcPassword - the password for the vCenter username. This can be specified as a credential stored in vRSLCM locker (using the format
locker:password:{vmid}:{alias}
) OR as a plain text password). - vcUsedAs - the type of vCenter Server, supported values are: MANAGEMENT, WORKLOAD or MANAGEMENT_AND_WORKLOAD.
API Example
An example cURL command for this REST API is:
curl --location --request POST 'https://{vrslcm.fqdn}/lcm/lcops/api/v2/datacenters/94e796dd-c9ee-4a70-a1ab-13d3a1e27779/vcenters' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {admin@local credential hash}' \
--data-raw '{
"vCenterName": "vcs01",
"vCenterHost": "vcs01.thecloudxpert.local",
"vcUsername": "administrator@vsphere.local",
"vcPassword": "locker:password:{vcenter.password.vmid}:{vcenter.password.alias}",
"vcUsedAs": "MANAGEMENT_AND_WORKLOAD"
}'
Note: The –insecure flag is also required if you are using self-signed SSL certificates.
API Response
The expected response returned from a successful request (Status Code=200) will be a Request ID (vmid).
{
"requestId": "4bb56445-3437-4751-9573-cac69a11243d"
}
We can track the progress of requests via the API. Check out Using the vRealize Suite Lifecycle Manager (vRSLCM) API to track vRSLCM Requests for more information.
Once the request has completed successfully, we can then use another API call to view the vCenter Servers that belong to a vRSLCM datacenter object.
Viewing the vCenter Servers in a Datacenter
Overview
We can use an API call to view the vCenter Servers that belong to a Datacenter.
API Request
The following REST API request is required to add a vCenter Server to an existing Datacenter:
- Request Type: GET
- Request URL: https://{vrslcm.fqdn}/lcm/lcops/api/v2/datacenters/{vmid}/vcenters
- vmid - the unique id of the Datacenter.
- Request Header(s):
- Accept: application/json
- Content-Type: application/json
- Authorization: Basic {admin@local credential hash}
- Request Body Values:
- None.
API Example
An example cURL command for this REST API is:
curl --location --request GET 'https://{vrslcm.fqdn}/lcm/lcops/api/v2/datacenters/94e796dd-c9ee-4a70-a1ab-13d3a1e27779/vcenters' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {admin@local credential hash}'
Note: The –insecure flag is also required if you are using self-signed SSL certificates.
API Response
The expected response returned from a successful request (Status Code=200) will be a Request ID (vmid).
{
"requestId": "ec1f5640-c0a8-44b6-a703-f6bb0c9b42cb"
}
Deleting a vCenter Server from a Datacenter
Overview
Once we have a Datacenter object, we may need to delete a vCenter Server from that datacenter using the API.
API Request
The following REST API request is required to add a vCenter Server to an existing vRSLCM Datacenter:
- Request Type: DELETE
- Request URL: https://{vrslcm.fqdn}/lcm/lcops/api/v2/datacenters/{vmid}/vcenters/{vcenter.name}
- vmid - the unique id of the vRSLCM datacenter.
- vcenter.name - the user friendly name of the vcenter server.
- Request Header(s):
- Accept: application/json
- Content-Type: application/json
- Authorization: Basic {admin@local credential hash}
- Request Body Values:
- None.
API Example
An example cURL command for this REST API is:
curl --location --request DELETE 'https://{vrslcm.fqdn}/lcm/lcops/api/v2/datacenters/9ebafd91-7472-4cf6-b707-4bc6c4c58283/vcenters/vcs01' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {admin@local credential hash}'
Note: The –insecure flag is also required if you are using self-signed SSL certificates.
API Response
The expected response returned from a successful request (Status Code=200) will be a Request ID (vmid).
{
"requestId": "e46e7ab4-e8c8-40cc-a1c1-01c7ce6b6b05"
}
As mentioned above, we can track the progress of requests via the API too! Check out Using the vRealize Suite Lifecycle Manager (vRSLCM) API to track vRSLCM Requests for more information.
Deleting a vCenter Server from a vRSLCM Datacenter
Overview
Once we have a Datacenter object, we may need to delete a vCenter Server from that datacenter using the API.
API Request
The following REST API request is required to add a vCenter Server to an existing Datacenter:
- Request Type: DELETE
- Request URL: https://{vrslcm.fqdn}/lcm/lcops/api/v2/datacenters/{vmid}
- vmid - the unique id of the vRSLCM datacenter.
- Request Header(s):
- Accept: application/json
- Content-Type: application/json
- Authorization: Basic {admin@local credential hash}
- Request Body Values:
- None.
API Example
An example cURL command for this REST API is:
curl --location --request DELETE 'https://lcm.thecloudxpert.local/lcm/lcops/api/v2/datacenters/9ebafd91-7472-4cf6-b707-4bc6c4c58283' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {admin@local credential hash}'
Note: The –insecure flag is also required if you are using self-signed SSL certificates.
API Response
The expected response returned from a successful request (Status Code=200) will be a Request ID (vmid).
{
"requestId": "3fc98e6b-0a8a-4a2d-8fb7-bea42b8b1747"
}
If we logged into vRSLCM using the UI, we would now see the following Datacenters configured:
As mentioned above, we can track the progress of requests via the API. Check out Using the vRealize Suite Lifecycle Manager (vRSLCM) API to track vRSLCM Requests for more information.
Wrapping It All Up!
In this post we have explored the way we can manage Datacenter objects using the vRSLCM API.
If this API this snippet has been helpful, make sure you checkout the rest of the series !
Published on 30 November 2021 by Christopher Lewis. Words: 1411. Reading Time: 7 mins.
- Using the vRealize Suite Lifecycle Manager (vRSLCM) API for vRSLCM Day 2 Operations - Managing Storage ()
- Using the vRealize Suite Lifecycle Manager (vRSLCM) API to track vRSLCM Requests ()
- Using the vRealize Suite Lifecycle Manager (vRSLCM) API to manage Locker Credentials ()
- Using the vRealize Suite Lifecycle Manager API to deploy the vRealize Suite ()
- vRSLCM SSLHandshakeException error after updating VIDM SSL certificate ()
- Operating a Private Cloud - Part 3: Creating a Pricing Card in VMware Aria Automation
- Operating a Private Cloud - Part 2: Creating a Pricing Card in VMware Aria Operations
- Operating a Private Cloud - Part 1: Understanding Pricing Cards in VMware Aria
- Zero2Hero - Using Aria Automation to Deploy Multiple Machines with Multiple Disks - Part 5
- Zero2Hero - Using Aria Automation to Deploy Multiple Machines with Multiple Disks - Part 4