Manage virtual machine client notes
The VSS CLI allows “client custom notes” to be added to the virtual machine annotation field with a maximum of 500 characters long. Client notes are useful to add reminders, codes or any particular metadata that is different from the VSS Metadata such as admin, client, etc.
This example demonstrates how to create a virtual machine with given client notes, list and update client notes to an existing virtual machine.
Deploy virtual machine
In order to launch a new virtual machine, we will use the following parameters:
Operating system:
OS=centos64Guest
Network:
NET=dvportgroup-11052
Folder:
FOLDER=group-v6736
ISO image:
ISO='[vss-ISOs] Linux/CentOS/CentOS-7.0-1406-x86_64-Minimal.iso'
Name:
NAME=Frontend-1
Notes:
NOTES="Project: Enterprise CMS\nToDo: Backup, Recovery"
Warning
Multi-line strings are handled differently by shells.
Run vss-cli compute vm mk shell
to deploy a virtual machine without an
operating system installed. Before deploying the virtual machine, display
what options and arguments the shell
command takes:
vss-cli compute vm mk shell --help
Usage: vss-cli compute vm mk shell [OPTIONS] NAME
Create a new virtual machine with no operating system pre-installed.
Options:
-d, --description TEXT A brief description. [required]
-b, --client TEXT Client department. [required]
-a, --admin TEXT Admin name, phone number and email separated
by `:` i.e. "John
Doe:416-123-1234:john.doe@utoronto.ca"
-r, --inform TEXT Informational contact emails in comma
separated
-u, --usage [Test|Prod|Dev|QA] Vm usage.
-o, --os TEXT Guest operating system id. [required]
-m, --memory INTEGER Memory in GB.
-c, --cpu INTEGER Cpu count.
-f, --folder TEXT Logical folder moref name or path.
[required]
-i, --disk INTEGER Disks in GB. [required]
-n, --net TEXT Network adapter <moref-or-name>=<nic-type>.
[required]
-t, --domain TEXT Target fault domain name or moref.
--notes TEXT Custom notes.
-s, --iso TEXT ISO image to be mounted after creation
-h, --high-io Use VMware Paravirtual SCSIController.
-e, --extra-config TEXT VMWare Guest Info Interface in JSON format.
--power-on Power on after successful deployment.
--vss-service TEXT VSS Service related to VM
--instances INTEGER Number of instances to deploy [default: 1]
--help Show this message and exit.
Now that we have everything, proceed to deploy a new virtual machine with 1GB of memory, 1 vCPU, 20GB disk and a tag Project:CMS as follows:
vss-cli compute vm mk shell --description 'NGINX web server' --client EIS --os centos \
--memory 1 --cpu 1 --folder TargetFolder --disk 20 --net Public --iso centos --notes "Project:CMS" \
Frontend-1
In matter of seconds, a confirmation email will be sent with the allocated
IP address, if VL-1584-VSS-PUBLIC
was selected.
List Client Notes
Optional Obtain the new UUID
by either listing and filtering virtual
machines in your inventory vss-cli compute vm ls --filter-by name=Front
or listing your new requests vss-cli request new ls -s created_on desc
.
The following command illustrates how to list virtual machines with the
front
string in their names:
Note
This version of the VSS CLI supports managing virtual machines not only using the UUID, but using names. In case of multiple results, the CLI prompts to select the right instance.
vss-cli compute vm ls -f name=Front
moref name folder.path cpu_count memory_gb power_state ip_address
------- ---------------- ------------------------- ----------- ----------- ------------- ------------
vm-2182 2004T-Frontend-1 VSS > Development > Dev03 1 1 poweredOff
To query existing virtual machine client-note use the
vss-cli compute vm get <uuid> client-note
command as follows:
vss-cli compute vm get Frontend1 client-note
value : Project:CMS
Update Client Notes
In order to update or replace existing client notes, use
vss-cli compute vm set <uuid> client-note --action up <new-note>
to append use the flag --replace
to overwrite all notes.
vss-cli compute vm set Frontend1 client-note --action up \
"Billing Code: 1234"
And query to validate any change:
vss-cli compute vm get Frontend1 client-note
value : Project: Enterprise CMS
ToDo: Backup, Recovery
Billing Code: 1234
If you wanted just to replace existing contents, add the
--replace/-r
and --action [up|del]
option to the command
as follows:
vss-cli compute vm set Frontend1 client-note --action up \
--replace "Billing Code: 1234"
And query to validate any change:
vss-cli compute vm get Front_end_1 client-note
Value : Billing Code: 1234
Delete Client Notes
To delete a client note simply run:
vss-cli compute vm set Frontend1 client-note --action del