Customization specifications let you apply guest operating system settings at deployment time, when deploying to vSphere based cloud zones.
The customization specification must exist in vSphere, at the target that you deploy to.
Edit the blueprint code directly. The following example points to a
cloud-assembly-linux customization specification for a WordPress host on vSphere.
resources: WebTier: type: Cloud.vSphere.Machine properties: name: wordpress cpuCount: 2 totalMemoryMB: 1024 imageRef: 'Template: ubuntu-16.04' customizationSpec: 'cloud-assembly-linux' resourceGroupName: '/Datacenters/Datacenter/vm/deployments'
If you want the provisioning experience to match what you are currently doing in vSphere, continuing to use customization specifications might be the best approach. However, to expand to hybrid or multiple cloud provisioning, a more neutral approach is to use cloudConfig customization. A cloudConfig section that leverages cloud-init can customize many additional objects in a deployment, including users, permissions, application installations, package installations, and command executions.
Use caution if you attempt to combine cloudConfig and customization specification initialization. They aren't formally compatible and might produce inconsistent or unwanted results when used together.
For more about cloudConfig, see How to automatically initialize a machine in a Cloud Assembly blueprint.