Customizing hardware profiles with cot edit-hardware


cot edit-hardware --help
cot <opts> edit-hardware PACKAGE [-o OUTPUT] -v TYPE [TYPE2 ...]
cot <opts> edit-hardware PACKAGE [-o OUTPUT]
                         [-p PROFILE [PROFILE2 ...]
                         [--delete-all-other-profiles]] [-c CPUS]
                         [-m MEMORY] [-n NICS]
                         [--nic-type {e1000,virtio,vmxnet3}]
                         [-N NETWORK [NETWORK2 ...]]
                         [-M MAC1 [MAC2 ...]]
                         [--nic-names NAME1 [NAME2 ...]]
                         [-s SERIAL_PORTS] [-S URI1 [URI2 ...]]
                         [--scsi-subtype SCSI_SUBTYPE]
                         [--ide-subtype IDE_SUBTYPE]


Edit hardware properties of the specified OVF or OVA


OVF descriptor or OVA file to edit

General options

-h, --help Show this help message and exit
-o OUTPUT, --output OUTPUT
 Name/path of new OVF/OVA package to create instead of updating the existing OVF
-v <TYPE...>, --virtual-system-type <TYPE...>
 Change virtual system type(s) supported by this OVF/OVA package.
-p <PROFILE...>, --profiles <PROFILE...>
 Make hardware changes only under the given configuration profile(s). (default: changes apply to all profiles)
 Delete all configuration profiles other than those specified with the –profiles option

Computational hardware options

-c CPUS, --cpus CPUS
 Set the number of CPUs.
-m MEMORY, --memory MEMORY
 Set the amount of RAM. (Examples: “4096MB”, “4GB”)

Network interface options

-n NICS, --nics NICS
 Set the number of NICs.
--nic-type <e1000,virtio,vmxnet3>
 Set the hardware type for all NICs. (default: do not change existing NICs, and new NICs added will match the existing type.)
--nic-names <NAME1...>
 Specify a list of one or more NIC names or patterns to apply to NIC devices. See Notes.
-N <NETWORK...>, --nic-networks <NETWORK...>
 Specify a series of one or more network names or patterns to map NICs to. See Notes.
-M <MAC1...>, --mac-addresses-list <MAC1...>
 Specify a list of MAC addresses for the NICs. If N MACs are specified, the first (N-1) NICs will receive the first (N-1) MACs, and all remaining NICs will receive the Nth MAC

Serial port options

-s SERIAL_PORTS, --serial-ports SERIAL_PORTS
 Set the number of serial ports.
-S <URI1...>, --serial-connectivity <URI1...>
 Specify a series of connectivity strings (URIs such as “telnet://localhost:9101”) to map serial ports to. If fewer URIs than serial ports are specified, the remaining ports will be unmapped.

Disk and disk controller options

--scsi-subtype SCSI_SUBTYPE
 Set resource subtype (such as “lsilogic” or “virtio”) for all SCSI controllers. If an empty string is provided, any existing subtype will be removed.
--ide-subtype IDE_SUBTYPE
 Set resource subtype (such as “virtio”) for all IDE controllers. If an empty string is provided, any existing subtype will be removed.


The –nic-names and –nic-networks options support the use of a wildcard value to automatically generate a series of consecutively numbered names. The syntax for the wildcard option is ‘{‘ followed by a number to start incrementing from, followed by ‘}’. See examples below.


Create a new profile named “1CPU-8GB” with 1 CPU and 8 gigabytes of RAM

cot edit-hardware csr1000v.ova --output csr1000v_custom.ova \
    --profile 1CPU-4GB --cpus 1 --memory 8GB

Wildcard example - without caring about how many NICs are defined in the input OVA, rename all of the NICs in the output OVA as ‘Ethernet0/10’, ‘Ethernet0/11’, ‘Ethernet0/12’, etc., and map them to networks ‘Ethernet0_10’, ‘Ethernet0_11’, ‘Ethernet0_12’, etc.

cot edit-hardware input.ova -o output.ova \
    --nic-names "Ethernet0/{10}" \
    --nic-networks "Ethernet0_{10}"

Combination of fixed and wildcarded names - rename the NICs in the output OVA as ‘mgmt’, ‘eth0’, ‘eth1’, ‘eth2’...

cot edit-hardware input.ova -o output.ova --nic-names "mgmt" \