section: VMware vSphere section_position: 6 section_type: inline

VMware vSphere

VMware vSphere is VMware's virtualization platform, which transforms data centers into aggregated computing infrastructures that include CPU, storage, and networking resources. vSphere manages these infrastructures as a unified operating environment, and provides you with the tools to administer the data centers that participate in that environment. Apache Brooklyn includes support for vSphere servers regardless of the underlying provider (AWS, Hetzner, etc).

To deploy applications on a vSphere server Apache Brooklyn needs to know its vRealize Automation endpoint that is used to communicate with vCenter to discover compute resources, collect data, and provision machines. It is recommended to create customized VM templates to be cloned to speed up provisioning operations. The vSphere Server endpoint is secured and credentials must be provided in the vSphere location catalog definition.

Below are examples of configuration options that use values specific to a vSphere server:

{% read _vSphere_configuration.md %}

The next two sections show a Linux and Windows locations examples.

Sample Linux Blueprint

Placeholders surrounded with <> have to be replaced with their respective values.

brooklyn.catalog:
  id: my-vsphere-linux-location
  name: my-vsphere-linux-location
  itemType: location
  item:
      type: vsphere
      brooklyn.config:
        displayName: vSphere VMware Linux

        # vcenter access
        endpoint: https://<VSPHERE-SERVER>/sdk
        identity: <VSPHERE-USER>
        credential: <VSPHERE-PASS>

        resourcePool: Resources
        cluster: <COMPUTE-CLUSTER>
        datastore: <DATASTORE>
        customDomain: <DOMAIN>
        folder: <FOLDER>

        # VM template details
        imageId: <TEMPLATE-VM>
        user: <VM-USER>
        password: <VM-PASSWORD>
        networks:
        - name: <NETWORK-NAME>

        # Prefix machine name with initials
        cloudMachineNamer: org.apache.brooklyn.core.location.cloud.names.CustomMachineNamer
        custom.machine.namer.machine: <PREFIX>-${entity.application.id}-LINUX-${entity.displayName[0..*10]}-${entity.id}
        vmNameMaxLength: 80

Sample Windows Blueprint

Placeholders surrounded with <> have to be replaced with their respective values.

brooklyn.catalog:
  id: my-vsphere-windows-location
  name: my-vsphere-windows-location
  itemType: location
  item:
      type: vsphere
      brooklyn.config:
        displayName: vSphere VMware Windows

        # vcenter access
        endpoint: https://<VSPHERE-SERVER>/sdk
        identity: <VSPHERE-USER>
        credential: <VSPHERE-PASS>

        resourcePool: Resources
        cluster: <COMPUTE-CLUSTER>
        datastore: <DATASTORE>
        customDomain: <DOMAIN>
        folder: <FOLDER>

        # VM template details
        imageId: <TEMPLATE-VM>
        osFamily: Windows
        user: Administrator
        password: <VM-PASSWORD>
        networks:
        - name: <NETWORK-NAME>

        # Prefix machine name with initials
        cloudMachineNamer: org.apache.brooklyn.core.location.cloud.names.CustomMachineNamer
        custom.machine.namer.machine: <PREFIX>-${entity.application.id}-WINDOWS-${entity.displayName[0..*10]}-${entity.id}
        vmNameMaxLength: 80