# M4CE(v5) - ESXi Connector This blueprint deploys a virtual machine from an OVA image and the security prerequisites to run the Migrate for Compute Engine (v5) [connector](https://cloud.google.com/migrate/virtual-machines/docs/5.0/how-to/migrate-connector) on VMWare ESXi. The blueprint is designed to deploy the M4CE (v5) connector on and existing VMWare environment. The [network configuration](https://cloud.google.com/migrate/compute-engine/docs/5.0/concepts/architecture#migration_architecture) required to allow the communication of the migrate connector to the GCP API is not included in this blueprint. This is the high level diagram: ![High-level diagram](diagram.png "High-level diagram") ## Managed resources and services This sample creates several distinct groups of resources: - virtual machine - [M4CE migrate connector](https://cloud.google.com/migrate/virtual-machines/docs/5.0/how-to/migrate-connector#step-InstallMigrateConnector) - IAM - [vCenter user role](https://cloud.google.com/migrate/virtual-machines/docs/5.0/how-to/migrate-connector#step-1) ## Variables | name | description | type | required | default | |---|---|:---:|:---:|:---:| | [m4ce_ssh_public_key](variables.tf#L43) | Filesystem path to the public key for the SSH login. | string | ✓ | | | [vcenter_password](variables.tf#L48) | VCenter user password. | string | ✓ | | | [vsphere_environment](variables.tf#L53) | VMVware VSphere connection parameters. | object({…}) | ✓ | | | [m4ce_appliance_properties](variables.tf#L15) | M4CE connector OVA image configuration parameters. | object({…}) | | {…} | | [m4ce_connector_ovf_url](variables.tf#L37) | http URL to the public M4CE connector OVA image. | string | | "https://storage.googleapis.com/vmmigration-public-artifacts/migrate-connector-2-0-1663.ova" | ## Manual Steps Once this blueprint is deployed a VCenter user has to be created and binded to the M4CE role in order to allow the connector access the VMWare resources. The user can be created manually through the VCenter web interface or through GOV commandline if it is available: ```bash export GOVC_URL= (eg. https://192.168.1.100/sdk) export GOVC_USERNAME= (eg. administrator@example.local) export GOVC_PASSWORD= export GOVC_INSECURE=true govc sso.user.create -p -R gcp-m4ce-role gcp-m4ce-user govc permissions.set -principal gcp-m4ce-user@example.local -propagate=true -role gcp-m4ce-role ```