In vSphere 6.0, there are a list of recommended topologies which can viewed in VMware KB 2108548. In the event that you need to locate all available vCenter Servers in your environment, you have a couple of options depending on type of access you have and the state of your environment (e.g. vSphere Web Client is down). For locating all deployed Platform Service Controllers (PSC), please take a look at my previous article here. Before taking a look at the solutions, here is a diagram of my vSphere 6.0 lab environment and its configuration: 2 PSCs configured for replication with 2 VCs joined to PSC1 and another VC joined to PSC2.

locate-vcenter-servers-and-platform-service-controllers
Option 1:

The first option to find this information is using the new System Configuration UI which is available in the vSphere 6.0 Web Client. You can quickly view all Nodes and their type as seen in the screenshot below. This would be the quickest and most efficient method if access to the vSphere Web Client is available.

locate-all-psc-servers-0
Option 2:

We can also connect to a new service in vSphere 6.0 known as the Component Manager via its MOB (Managed Object Browser) interface. You will need to open a browser and connect to the following URL and substituting it with the Hostname/IP Address of one of your PSC:

https://psc-01.primp-industries.com/cm/mob/?moid=ServiceManager&method=Search

If you do not know the Hostname/IP Address of your PSC Server, you can always find it by going to the vCenter Server Advanced Settings and searching for pattern "sso.admin" and you will see the address of your PSC Server as seen in the screenshot below.

Screen Shot 2015-03-29 at 2.56.33 PM
Once you have authenticated in, you will need to add the following snippet into the text box:

<searchCriteria>
<serviceType>
<productId>com.vmware.cis</productId>
<typeId>vcenterserver</typeId>
</serviceType>
</searchCriteria>

locate-all-vcenter-servers-1
Note: For programmatic access, please refer to Option 3 for more details.

Next, click on Invoke Method to execute the query and if everything was successful, you should see entries under "serviceAttributes" for all your vCenter Servers as seen in the screenshot below.

locate-all-vcenter-servers-2
Option 3:

The final option is to of course retrieve this information programmatically using the new vCloud Suite SDK which is part of the vSphere 6.0 release. There are 6 new SDKs: .Net, Java, Perl, REST, Python & Ruby and you can find more information here. In this example, I will be using the vCloud Suite SDK for Python and using the sample located under the "lookupservice" directory called print_services.py You will need to download and extract the contents of the SDK onto a system that has a Python interpreter installed and below are the instructions for running this particular sample script.

First, you will need to edit a configuration file and provide some details to one of your PSC's

VMware-vCloud-Suite-SDK-Python-6.0.0/client/samples/src/sample.cfg

Here is an example of what the file should look like for my environment:

[connection]
lswsdlurl=file:///root/VMware-vCloud-Suite-SDK-Python-6.0.0/client/wsdl/lookupservice.wsdl
lssoapurl=https://psc-01.primp-industries.com/lookupservice/sdk
ssousername=administrator@vghetto.local
ssopassword=VMware1!

Next, change into the following directory:

cd VMware-vCloud-Suite-SDK-Python-6.0.0/client/bin/

Finally, to run the sample script you will need to ensure run_sample.sh (wrapper script) is set to executable and then run the following:

./run_sample.sh ../samples/src/com/vmware/vcloud/suite/sample/lookupservice/print_services.py

If everything was configured successfully, you should see similar output as shown in the screenshot below:
finding-all-deployed-platform-service-controllers-and-vcenter-servers

2 thoughts on “vCenter Server 6.0 Tidbits Part 4: Finding all deployed vCenter Servers

  1. Which all users can query lookup service? Is it compulsory to have a sso admin user to query the lookupservice?

    • The Lookup Service is a service provided by the Platform Services Controller, so you’ll need at least an SSO User to be able to connect. Whether or not it requires an SSO Admin, that I’m not sure. You can always try creating a user with limited rights or readonly and see if you retrieve the same data. Should be a quick enough test 🙂

Thanks for the comment!