Automation Blueprint: Linux Sample v2

by Simon Sparks · 28 January 2026

formatVersion: 2 adds template specifications for metadata, variables, and outputs. It automatically applies to the cloud templates for AI Workstation and AI Kubernetes Clusters that are deployed using Private AI Automation Services, but supports any kind of deployment.

GitHub Repository: https://github.com/SimonSparksUK/Automation

Filename: Blueprtint-Linux-Sample-v2\content.yaml

formatVersion: 2
metadata:
  deploymentSettings:
    disableUpdateDay2Action: false
    hideDisabledDay2Actions: true
inputs:
  inOperatingSystem:
    populateRequiredOnNonDefaultProperties: true
    type: string
    title: Operating System
    description: Operating System
    default: RedHat Enterprise Linux v9.x
    oneOf:
      - title: Ubuntu Server v22.04.x
        const: Ubuntu Server v22.04.x
      - title: Ubuntu Server v24.04.x
        const: Ubuntu Server v24.04.x
      - title: Ubuntu Server v25.04.x
        const: Ubuntu Server v25.04.x
      - title: RedHat Enterprise Linux v8.x
        const: RedHat Enterprise Linux v8.x
      - title: RedHat Enterprise Linux v9.x
        const: RedHat Enterprise Linux v9.x
      - title: RedHat Enterprise Linux v10.x
        const: RedHat Enterprise Linux v10.x
  inNetwork:
    populateRequiredOnNonDefaultProperties: true
    type: string
    title: Network
    description: Network
    oneOf:
      - title: Linux Server - Application Servers
        const: VMS-40GbE-Linux
  inFlavor:
    populateRequiredOnNonDefaultProperties: true
    type: string
    title: Flavor
    description: Flavor
    default: Extra Small
    oneOf:
      - title: Extra Small ( vCPU 1, RAM 2 GB )
        const: Extra Small
      - title: Small ( vCPU 2, RAM 4 GB )
        const: Small
      - title: Medium ( vCPU 4, RAM 8GB )
        const: Medium
      - title: Large ( vCPU 8, RAM 32 GB )
        const: Large
      - title: Extra Large ( vCPU 16, RAM 64 GB )
        const: Extra Large
  inStorageTier:
    populateRequiredOnNonDefaultProperties: true
    type: string
    title: Storage Tier
    description: Storage Tier
    default: Silver
    oneOf:
      - title: Platinum
        const: Platinum
      - title: Gold
        const: Gold
      - title: Silver
        const: Silver
      - title: Bronze
        const: Bronze
  inStorageType:
    populateRequiredOnNonDefaultProperties: true
    type: string
    title: Storage Type
    description: Storage Type
    default: Single-Site
    oneOf:
      - title: Single Site ( Non Replicated )
        const: Single-Site
      - title: Multi Site ( Replicated - Asynchronous )
        const: Multi-Site-Asynchronous
      - title: Multi Site ( Replicated - Synchronous )
        const: Multi-Site-Synchronous
  inAdminUsername:
    populateRequiredOnNonDefaultProperties: true
    type: string
    title: Admin Username
    description: Admin Username
    minLength: 8
    maxLength: 15
    pattern: ^[a-zA-Z]+$
  inAdminPassword:
    populateRequiredOnNonDefaultProperties: true
    type: string
    title: Admin Password
    description: Admin Password
    minLength: 8
    maxLength: 15
    encrypted: true
    writeOnly: true
    pattern: ^[a-zA-Z]+$
outputs:
  VirtualMachineName:
    value: ${resource.Cloud_vSphere_Machine_1.resourceName}
  VirtualMachineIP:
    value: ${resource.Cloud_vSphere_Machine_1.address}
  __deploymentOverview:
    value: |
      ## Deployment Details for ${env.deploymentName}

      The following vSphere Virtual Machine has been provisioned on top of VMware Cloud Foundation

      ### Application Details

      Your application is running and available at: {{resource.Cloud_vSphere_Machine.resourceName}}

      If you need to directly access a Linux VM run: ssh root@{{resource.Cloud_vSphere_Machine.address}}

      If you need to directly access the console of the VM using VMRC vmrc://t<TenantID>.cmp.cloudbuildtools.com/?moid=vm-
resources:
  Cloud_vSphere_Network_1:
    type: Cloud.vSphere.Network
    properties:
      networkType: existing
      name: ${input.inNetwork}
      constraints:
        - tag: OperatingSystemType:Windows
  Cloud_vSphere_Machine_1:
    type: Cloud.vSphere.Machine
    allocatePerInstance: true
    createTimeout: 1h
    deleteTimeout: 1h
    updateTimeout: 1h
    preventDelete: true
    ignoreChanges: true
    properties:
      image: ${input.inOperatingSystem}
      flavor: ${input.inFlavor}
      constraints:
        - tag: OperatingSystemType:Windows:hard
      remoteAccess:
        authentication: usernamePassword
        username: ${input.inAdminUsername}
        password: ${input.inAdminPassword}
      networks:
        - network: ${resource.Cloud_vSphere_Network_1.name}
          deviceIndex: 0
          assignment: static
          assignIPv6Address: false
          assignPublicIpAddress: false
      cloneStrategy: FULL
      customizationSpec: Windows-Server
      folderName: Windows-Servers
      storage:
        maxDiskCapacityInGB: 2048
        bootDiskCapacityInGB: 128
        constraints:
          - tag: StorageTier:${input.inStorageTier}:hard
          - tag: StorageType:${input.inStorageType}:hard
      snapshotLimit: 2

Discover more from Cloud Build Tools

Subscribe to get the latest posts sent to your email.

You may also like