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-types TYPE [TYPE2 ...]]
                         [-N NETWORK [NETWORK2 ...]]
                         [-M MAC1 [MAC2 ...]]
                         [--nic-names NAME1 [NAME2 ...]]
                         [-s SERIAL_PORTS] [-S URI1 [URI2 ...]]
                         [--scsi-subtypes TYPE [TYPE2 ...]]
                         [--ide-subtypes TYPE [TYPE2 ...]]


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: "4096M", "4 GiB")

Network interface options

-n NICS, --nics NICS
 Set the number of NICs.
--nic-types <TYPE...>
 Set the hardware type(s) for all NICs. (default: do not change existing NICs, and new NICs added will match the existing type(s).)
--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.
--network-descriptions <NAME1...>
 Specify a list of one or more network descriptions or patterns to apply to the networks. 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 use 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-subtypes <TYPE...>
 Set resource subtype(s) (such as "lsilogic" or "virtio") for all SCSI controllers. If an empty string is provided, any existing subtype will be removed.
--ide-subtypes <TYPE...>
 Set resource subtype(s) (such as "virtio") for all IDE controllers. If an empty string is provided, any existing subtype will be removed.


The --nic-names, --nic-networks, and --network-descriptions options support the use of a wildcard value to automatically generate a series of consecutively numbered strings. 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., which are described as 'Data network 1', 'Data network 2', etc.

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

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" \