ITS Private Cloud CLI Shell specification for VM deployment
To launch your text editor with the specification template pre-loaded, run the following command:
vss-cli compute vm mk from-file --edit --save --spec-template shell
The following is the YAML definition of valid VM Shell CLI specification:
built: os_install # Required: Do not remove.
machine:
name: Vm-Name # Required: Target virtual machine name.
os: ubuntu64Guest # Required: Guest Operating System name or Id.
cpu: 1 # Optional: CPU count (Default: 1).
memory: 1 # Optional: Memory in GB (Default: 1GB).
folder: Name-or-Id # Required: Folder name, path or ID.
storage-type: hdd # Optional: Storage Type to use for this VM. ssd or hdd
iso: Ubuntu # Optional: ISO name or path to mount upon creation.
firmware: efi # Optional: Firmware to use: Either bios or efi and secure boot (Default: efi).
disks:
- capacity_gb: 40 # Disk capacity in GB (Default: 40GB).
backing_mode: persistent # Optional Disk backing mode (Default: persistent).
backing_sharing: sharingnone # Optional Disk sharing mode (Default: sharingnone).
scsi: 0 # Optional Disk SCSI controller (Default: 0).
scsi:
- bus: 0 # SCSI controller bus number (Default: 0).
type: paravirtual # Required: Disk type (Recommended: paravirtual).
sharing: nosharing # Optional Disk sharing mode (Default: nosharing).
# Additional (Uncomment to enable)
domain: # Optional: Domain name or ID to deploy (Default: provided by API).
power_on: true # Optional: Power on after successful deployment.
# template: false # Optional: Mark resulting vm as template.
# tpm: true # Optional: Enable vTrusted Platform Module Device.
# vbs: true # Optional: Enable Virtualization Based Security.
# VM extra configuration (Uncomment to enable)
# extra_config:
# - disk.EnableUUID="TRUE"
networking:
interfaces:
- network: VSS-PUBLIC # Required: Network name or network ID.
type: vmxnet3 # Optional: Defaults to vmxnet3
# metadata required
metadata:
client: Department # Required: Client department
# Required: Description of virtual machine
description: >
nginx and database server for a very important service.
usage: Test # Optional: Usage between Prod | Dev | QA | Test (default: Test)
inform: # Required: list of additional contact email addresses
- email@utoronto.ca
# admin: # Optional: VM Administrator (Default: user submitting request)
# name: # (Admin) Required: VM Administrator full name
# email: # (Admin) Required: VM Administrator email i.e. user@utoronto.ca
# phone: # (Admin) Required: VM Administrator phone i.e. 416-123-2341
# Recommended Metadata (Uncomment to enable)
# notes: # Optional: list of key-value items to be set in Key: value form.
# - BillingCode: 12345
# - Documentation: https://uoft.me/service-docs
# vss_service: N/A # Optional: VSS Service name or service id
# vss_options: # Optional: VSS options reset_on_restore, reboot_on_restore
# - reset_on_restore
# - reboot_on_restore
Note
YAML is case-sensitive. YAML is whitespace-sensitive and indentation defines the structure, but it doesn’t accept tabs for indentation.