Lab: Deploy VCF Automation and Create Cloud Template Catalog
Objectives
- Deploy VCF Automation appliance and complete initial configuration
- Add vCenter and NSX cloud accounts with validation
- Create cloud zones, flavor mappings, image mappings, and network profiles
- Design and deploy a multi-resource cloud template with VM + NSX network
- Implement template versioning, inputs, and Day-2 action configuration
- Publish template to Service Broker catalog with governance controls
Prerequisites
VCF management domain with VCF Operations, vCenter, and NSX Manager operational. Sufficient resources for Automation appliance (12 vCPU, 48GB RAM). VM template available in Content Library.
Prior labs: vcp-admin-01
Required skills:
- YAML syntax and structure
- NSX segments and Tier-1 gateway concepts
- VM templates and Content Libraries
- Infrastructure-as-Code principles
Lab Environment
Holodeck VCF pod with management domain. VCF Automation deployed as nested VM. NSX configured with Tier-0/Tier-1 gateways.
Credentials
| System | Username | Password |
|---|---|---|
| vCenter | administrator@vsphere.local | |
| VCF Automation | admin | |
| NSX Manager | admin |
Tasks
Task 1 Deploy VCF Automation Appliance and Initial Configuration
manageabilityVCF Automation is the self-service and governance engine exclusive to VCF (not available in VVF). Deployment and initial configuration is exam-relevant for Obj 4.4. Understanding resource requirements and integration points is essential for VCDX design.
Pre-flight check: Verify available resources in management cluster. VCF Automation requires: 12 vCPU, 48GB RAM, 200GB disk (thin provisioned). In Holodeck, verify at least 64GB free RAM across hosts using vCenter → Cluster → Monitor → Resource Reservation.
Deploy VCF Automation OVA: vCenter → right-click management cluster → Deploy OVF Template. Select VCF Automation OVA. Configure: Name='vcf-auto', Network=management-pg, IP configuration (static), DNS, NTP, root password, admin password.
Wait for initial boot and service startup (10-15 minutes). Monitor progress: open VM console → watch boot log. Services initialize in order: PostgreSQL → RabbitMQ → Identity → Cloud Assembly → Service Broker.
Access VCF Automation UI: https://vcf-auto.lab.local → login with admin credentials. Navigate through the initial setup wizard: accept EULA, configure telemetry preferences, verify identity provider (embedded vIDM or external).
Add vCenter Cloud Account: Infrastructure → Cloud Accounts → Add → vSphere. Enter: Name='vcsa-01', FQDN=vcsa-01.lab.local, Username=administrator@vsphere.local, Password. Click 'Validate' → then 'Add'.
Add NSX Cloud Account: Infrastructure → Cloud Accounts → Add → NSX-T. Enter: Name='nsx-01', FQDN=nsx-01.lab.local, credentials. Associate with vCenter account (select 'vcsa-01' from dropdown). Validate and add.
Validation Gate
Check: Cloud Assembly → Infrastructure → Cloud Accounts shows both vCenter and NSX connected and associated
Expected: Both cloud accounts show 'Connected' status with discovered infrastructure resources
Task 2 Configure Cloud Zones, Flavors, Images, and Network Profiles
manageabilityCloud zones, flavors, images, and network profiles create the abstraction layer between physical infrastructure and cloud templates. These abstractions enable infrastructure-agnostic template design — a core VCF Automation principle.
Create Cloud Zone: Infrastructure → Cloud Zones → New Cloud Zone. Name='Lab-Zone-01', Account='vcsa-01', Compute: select management cluster. Add capability tags: 'env:lab', 'tier:standard'. Set placement policy: 'default' (spread across hosts).
Create Flavor Mappings: Infrastructure → Flavor Mappings → New Flavor Mapping. Create three sizes:
1. Name='small' → Map to vcsa-01: 2 vCPU, 4GB RAM 2. Name='medium' → Map to vcsa-01: 4 vCPU, 8GB RAM 3. Name='large' → Map to vcsa-01: 8 vCPU, 16GB RAM
Create Image Mapping: Infrastructure → Image Mappings → New Image Mapping. Name='ubuntu-2204' → Map to vcsa-01: select the Ubuntu 22.04 VM template from Content Library. Add second mapping: Name='photon-5' → Map to vcsa-01: select Photon OS 5 template.
Create Network Profile: Infrastructure → Network Profiles → New Network Profile. Name='Lab-Network-Profile'. Account='vcsa-01'. Add existing NSX segments available for deployment (management segment, workload segments). Configure IP assignment: DHCP for lab, or define static IP ranges if using IP pools.
Verify infrastructure abstraction completeness: Infrastructure → Overview. Check that all four abstractions are configured: Cloud Zones (1+), Flavor Mappings (3), Image Mappings (2+), Network Profiles (1+). The 'Configure' tab should show no warnings.
Validation Gate
Check: Cloud zone, flavor mappings, image mappings, and network profile all created and showing in Infrastructure → Overview
Expected: All infrastructure abstractions configured with capability tags, VM template mappings, and network configuration ready for template use
Task 3 Design and Deploy Cloud Template with NSX Integration
manageabilityCloud templates are Infrastructure-as-Code (IaC) artifacts that define deployable infrastructure. This task covers YAML template design with inputs, constraints, and NSX network integration — the core skill for VCF Automation administration.
Create new template: Cloud Assembly → Design → New Cloud Template. Project='Lab Project', Name='Lab Web Server'. Start with the visual canvas — drag 'Cloud.vSphere.Machine' and 'Cloud.NSX.Network' onto the canvas. Connect them (draw line from VM network port to network resource).
Switch to YAML editor and refine the template:
formatVersion: 1
inputs:
size:
type: string
title: VM Size
description: Select compute size
enum:
- small
- medium
- large
default: small
hostname:
type: string
title: Hostname
description: VM hostname (lowercase, no spaces)
pattern: '^[a-z][a-z0-9-]{2,14}$'
resources:
web-vm:
type: Cloud.vSphere.Machine
properties:
name: '${input.hostname}'
image: ubuntu-2204
flavor: '${input.size}'
customizationSpec: linux-customization
networks:
- network: '${resource["web-net"].id}'
assignment: static
web-net:
type: Cloud.NSX.Network
properties:
networkType: existing
constraints:
- tag: 'env:lab'
Test deploy: Click 'Deploy' → Deployment Name='test-web-01' → provide inputs (size=small, hostname='test-web-01') → Deploy. Monitor deployment progress: Deployments → click deployment → watch resource provisioning steps.
Verify deployment in vCenter: confirm VM exists with correct name, CPU/RAM matching selected flavor, connected to expected NSX segment. In NSX Manager, verify the VM's logical port appears on the correct segment.
Delete test deployment: Deployments → select 'test-web-01' → Actions → Delete. Monitor cleanup: VM deleted from vCenter, NSX logical port removed. Verify no orphaned resources.
Validation Gate
Check: Cloud template deployed successfully with VM on NSX segment, then cleanly deleted with no orphaned resources
Expected: Full deployment lifecycle verified: create → verify → delete → confirm cleanup
Task 4 Template Versioning, Advanced Inputs, and Day-2 Actions
manageabilityProduction-grade templates need versioning for change management, advanced inputs for flexibility, and Day-2 actions for lifecycle management. These capabilities distinguish VCF Automation from simple VM provisioning.
Version the template: Cloud Assembly → Design → open 'Lab Web Server' → click 'Version' → Version='1.0' → Description='Initial release: single VM with existing NSX network'. Release to catalog: check 'Release this version to the catalog'.
Enhance template with advanced inputs. Add to inputs section:
disk_size:
type: integer
title: Additional Disk (GB)
description: Size of additional data disk
minimum: 10
maximum: 500
default: 50
environment:
type: string
title: Environment
enum:
- dev
- staging
- prod
default: dev
Add to web-vm properties:
storage:
disks:
- capacityGb: '${input.disk_size}'
name: data-disk
tags:
- key: environment
value: '${input.environment}'
Configure Day-2 actions: Cloud Assembly → Design → open template → Day 2 tab. Enable actions:
- 'Resize' — allow VM CPU/RAM changes post-deployment
- 'Add Disk' — allow additional storage attachment
- 'Power Operations' — allow power on/off/restart
- 'Snapshot' — allow snapshot create/revert/delete
For each, set who can execute: 'Project Members' or 'Project Administrators only'.
Version the enhanced template: Version='2.0' → Description='Added data disk, environment tags, Day-2 actions'. Deploy v2.0 to verify: test with disk_size=50, environment=dev. Confirm additional disk attached and vSphere tag applied.
Test Day-2 action: On the test deployment → Actions → Resize → change to 'medium'. Monitor the resize operation. Verify in vCenter that CPU/RAM updated (may require VM restart depending on hot-add configuration).
Validation Gate
Check: Template versioned (v1.0 and v2.0), advanced inputs working, Day-2 actions operational
Expected: Full template lifecycle demonstrated: version → enhance → test → Day-2 operations
Task 5 Publish to Service Broker Catalog with Governance and VCDX Defense
manageabilityService Broker is the self-service storefront. Publishing templates with governance controls (content sharing, entitlements, policies) completes the admin-to-consumer handoff. This task ties together all VCF Automation concepts for VCDX defense.
Configure content source: Service Broker → Content & Policies → Content Sources → New → VMware Cloud Templates. Select the project containing 'Lab Web Server'. Validate and save. The content source syncs templates to Service Broker.
Configure content sharing: Service Broker → Content & Policies → Content Sharing → Add Items. Share 'Lab Web Server' with project 'dev-team-alpha' (created in Lab 14, or create a new project). Set sharing scope: this project only.
Create custom form: Service Broker → Content & Policies → select 'Lab Web Server' → Custom Form. Customize the request form: reorder fields, add help text to inputs, group related inputs, hide advanced options behind an 'Advanced' section. Save form.
Test self-service flow: Login as a project member (non-admin). Navigate to Service Broker → Catalog → locate 'Lab Web Server'. Fill in the request form → submit. Verify deployment starts (or enters approval queue if approval policy is configured from Lab 14).
VCDX Defense Preparation — document responses:
- 'How does VCF Automation change the operational model from admin-provisioned to self-service?'
Answer: VCF Automation shifts IT from ticket-based provisioning (days/weeks) to catalog-based self-service (minutes). Admins define templates and governance; consumers request and manage their own infrastructure. The admin role shifts from provisioner to platform engineer.
- 'What governance controls prevent resource sprawl?'
Answer: Five layers of governance: (a) Cloud zone resource limits, (b) Project-level instance/resource quotas, (c) Lease policies with auto-expiry, (d) Approval policies for large deployments, (e) Naming conventions for auditability. Together they create a self-service model with guardrails.
- 'How would you design a multi-tier application template with web, app, and DB tiers on separate NSX segments?'
Answer: Three Cloud.NSX.Network resources with different networkType (routed for web-facing, isolated for app-to-DB). NSX DFW policies applied via segment tags. Tier-1 gateway for north-south traffic. Template inputs allow tier sizing independently.
- 'What happens when a cloud template deployment fails halfway?'
Answer: VCF Automation supports partial deployment rollback. Failed resources are cleaned up; successfully created resources can be retained (configurable). Deployment history shows exactly which step failed and why. Recovery: fix the issue and re-deploy, or manually clean up orphaned resources.
Validation Gate
Check: Template published to Service Broker catalog, content sharing configured, custom form created, self-service request tested, VCDX defense responses prepared
Expected: Complete self-service workflow operational from template design to consumer request
Final Validation
VCF Automation deployed, cloud accounts connected, infrastructure abstractions configured, cloud template designed with versioning and Day-2 actions, published to Service Broker catalog with governance.
✓ Cloud accounts (vCenter + NSX) connected and associated → Both show 'Connected' with discovered resources
✓ Infrastructure abstractions complete (cloud zone, flavors, images, network profile) → All configured with capability tags and mappings
✓ Cloud template deploys VM with NSX network → VM running, connected to NSX segment, additional disk attached
✓ Template versioned (v1.0, v2.0) with Day-2 actions → Version history visible, Day-2 resize/snapshot/power operations functional
✓ Catalog item available in Service Broker → Project members can request deployment via custom form
Cleanup / Restore
Snapshot: post-vcf-automation
• Delete test deployments
• Take snapshot 'post-vcf-automation'
Design Reflection (VCDX)
Panelist: How does VCF Automation change the operational model from admin-provisioned to self-service? What governance controls prevent resource sprawl? How do you handle template versioning in a multi-team environment?
Requirements
- Self-service VM provisioning for development teams with < 15 minute delivery
- Network isolation per deployment via NSX integration
- Governance via approval policies and resource limits
- Template versioning with rollback capability
- Day-2 lifecycle management for deployed resources
Constraints
- VCF Automation appliance requires 48GB RAM (single node) or 144GB (clustered)
- Cloud templates limited to configured cloud zones and mapped resources
- NSX integration required for on-demand networking capabilities
- Content Library VM templates must be maintained and patched regularly
Assumptions
- Development teams understand catalog request workflow and self-service model
- VM templates in Content Library are hardened and approved by security team
- NSX segments pre-configured or on-demand policies defined before template authoring
- Naming conventions enforced at project level prevent resource identification issues
Risks
- Resource sprawl without lease management — orphaned VMs accumulate cost
- Stale VM templates with unpatched vulnerabilities create security exposure
- Over-complex templates increase troubleshooting difficulty and reduce adoption
- Single-node Automation appliance is a single point of failure for self-service platform
- Template version conflicts in multi-team environments without branching strategy
Self-Assessment Discussion Prompts
- How would you design a multi-tier application template with web, app, and DB tiers on separate NSX segments?
- What approval workflow would you recommend for production deployments vs dev/staging?
- How do you handle template versioning when multiple teams contribute templates?
- What's the migration path from manually provisioned VMs to Automation-managed deployments?
- How does VCF Automation compare to Terraform for IaC in a VCF environment?
References
- VCF Automation Cloud Assembly GuideTier 1 — Official
- Cloud Template YAML ReferenceTier 1 — Official
- VCF Automation Service Broker GuideTier 2 — VMware Press
- VCF Automation Sizing GuidelinesTier 2 — VMware Press