Skip to main content
System StatusContact Support
VersionOne Community

vSphere Web Services Overview

This feature is available in Ultimate edition only.

editions-u.png

Overview

Automate communicates with cloud virtualization software and providers through web service API calls. To establish connectivity and store the credentials for future use choose Automate in the right hand menu, then Configuration-> Cloud Accounts in the top menu.

The integration of VMware with Automate can provide a powerful way to programmatically automate the administration, provisioning and monitoring of VMware vSphere systems. Automate communicates with VMware through the same vSphere Web Services access point as the vSphere Client administration tool.

Background

According to the VMware vSphere Web Services SDK, the following are examples (not comprehensive) of operational Tasks that can be performed through the vSphere Web Services API.

  • Create, configure, power cycle, or suspend virtual machines explicitly or by using profiles or templates to facilitate faster provisioning.

  • Create, configure, and manage virtual devices, such as virtual CD-DVD drives, virtual network interface cards, virtual switches, and other components.

  • Connect, power cycle, and disconnect ESX and ESXi host systems.

  • Capture the state of a virtual machine to a snapshot and restore the state of a virtual machine from a snapshot, such as in a backup application.

  • Gather statistics about host system and virtual machine performance.

  • Manage events generated by the server, such as those created by alarms set for specific thresholds.

  • Move virtual machines between hosts automatically.

  • Manage load balancing and failover through the distributed resource scheduler (VMware DRS) and high availability (VMware HA) subsystems. VMware DRS and VMware HA require vCenter Server.

In a typical VMware enterprise environment, the VMware vCenter (aka VirtualCenter) application is used to manage the ESX hypervisor layer. vCenter provides the Web Service API as a default and supports https communication.

For more information on the vSphere Web Services for version 5.1, see the following links.

Credentials

To enable communication with the vSphere Web Service, first create credentials in vSphere that can be used to access the Web Service. Refer to the VMware vSphere documentation for information on creating credentials in vSphere.

Once the vSphere credentials have been created, login to the administration console and navigate to Configuration -> Manage Cloud Accounts. See this page for general information on Cloud Accounts.

Click the Create button and fill in the following fields: Account Name, Login ID, Password. Account Name is an arbitrary name for the set of credentials which will distinguish it from other credentials defined. Login ID and Password are the user id and password created in vSphere. If the user id is part of an Active Directory domain, enter it as follows: domain\username

On the Cloud Account page, select "VMware" in the provider list and click Save.

All passwords are encrypted inside the repository.

Web Service Endpoint

The next step will define the Web Service Endpoint. In the administration console, navigate to Configuration -> Manage Clouds. See here for more information on managing cloud endpoints. Click the Create button. On the dialog that appears, name the vSphere endpoint, select VMware as the Provider. Select the proper API Protocol (https is the vSphere default) and enter the API Url. The API Url will typically be https://ipaddress or https://fqdn of the vCenter management server.

Select the newly created Cloud Account named in the previous step in the Default Account drop down and click the Save button.

Next to the Default Account list is a button used to test the connection. Testing VMware connections is not yet supported in the administrator console.

Network Connectivity

The Task Engine server(s) will need inbound TCP access to the vSphere Web Services endpoint server at port 443 (default). The Web Services endpoint port can be changed or http port 80 can also be enabled and/or changed.

Connectivity can be tested by using the following command at the command line on the Task Engine server, substituting the address of the vSphere Web Services endpoint. This tests only un-authenticated network connectivity.

curl -Lk https://<ipaddress or fqdn>

Testing the Credentials

To test Task connectivity to the vSphere Web Service endpoint as well as the credentials, create a Task and name it test vmware.

On the Commands tab, select the VMware category and drag the VMware List Images command over to the right. Either select or type in the VMware Cloud endpoint name. In the upper right side of the screen, switch the "Cloud Account" scope to the newly created named credentials if they are not already selected.

Click on the Run tab and click the play button. On the next screen, click Run Now. The Task instance log page will appear. If the command is successful, you should see a listing of the images available on vSphere. Otherwise any errors that occurred will appear in the log.

vSphere Capabilities

At the present time, the vSphere API capabilities within Tasks are as follows:

  • List Images

  • Power On Image

  • Power Off Image

  • Clone Image

The underlying vSphere SDK client library used by Automate has further capabilities that will be implemented in the near future. Contact Continuum for more information.

  • Was this article helpful?