salt.modules.smartos_vmadm

Module for running vmadm command on SmartOS

salt.modules.smartos_vmadm.create(**kwargs)

Create a new vm

from_file
: string
Specifies the json file to create the vm from. Note: when this is present all other options will be ignored.
  • : string|int|...

    Specifies options to set for the vm. Example: image_uuid=UUID, will specify the image_uuid for the vm to be created.

    nics='[{"nic_tag": "admin", "ip": "198.51.100.123", "netmask": "255.255.255.0"}]', adds 1 nic over the admin tag

CLI Example:

salt '*' vmadm.create from_file=/tmp/new_vm.json
salt '*' vmadm.create image_uuid='...' alias='...' nics='[{ "nic_tag": "admin", "ip": "198.51.100.123", ...}, {...}]' [...]
salt.modules.smartos_vmadm.create_snapshot(vm=None, name=None, key='uuid')

Create snapshot of a vm

vm
: string
Specifies the vm
name
: string
Name of snapshot. The snapname must be 64 characters or less and must only contain alphanumeric characters and characters in the set [-_.:%] to comply with ZFS restrictions.
key
: string
Specifies what 'vm' is. Value = uuid|alias|hostname

CLI Example:

salt '*' vmadm.create_snapshot 186da9ab-7392-4f55-91a5-b8f1fe770543 baseline
salt '*' vmadm.create_snapshot nacl baseline key=alias
salt.modules.smartos_vmadm.delete(vm=None, key='uuid')

Delete a vm

vm
: string
Specifies the vm
key
: string
Specifies what 'vm' is. Value = uuid|alias|hostname

CLI Example:

salt '*' vmadm.delete 186da9ab-7392-4f55-91a5-b8f1fe770543
salt '*' vmadm.delete nacl key=alias
salt.modules.smartos_vmadm.delete_snapshot(vm=None, name=None, key='uuid')

Delete snapshot of a vm

vm
: string
Specifies the vm
name
: string
Name of snapshot. The snapname must be 64 characters or less and must only contain alphanumeric characters and characters in the set [-_.:%] to comply with ZFS restrictions.
key
: string
Specifies what 'vm' is. Value = uuid|alias|hostname

CLI Example:

salt '*' vmadm.delete_snapshot 186da9ab-7392-4f55-91a5-b8f1fe770543 baseline
salt '*' vmadm.delete_snapshot nacl baseline key=alias
salt.modules.smartos_vmadm.get(vm=None, key='uuid')

Output the JSON object describing a VM

vm
: string
Specifies the vm
key
: string
Specifies what 'vm' is. Value = uuid|alias|hostname

CLI Example:

salt '*' vmadm.get 186da9ab-7392-4f55-91a5-b8f1fe770543
salt '*' vmadm.get nacl key=alias
salt.modules.smartos_vmadm.info(vm=None, info_type='all', key='uuid')

Lookup info on running kvm

vm
: string
Specifies the vm
info_type
: string
Specifies what info to return. Value = all|block|blockstats|chardev|cpus|kvm|pci|spice|version|vnc
key
: string
Specifies what 'vm' is. Value = uuid|alias|hostname

CLI Example:

salt '*' vmadm.info 186da9ab-7392-4f55-91a5-b8f1fe770543
salt '*' vmadm.info 186da9ab-7392-4f55-91a5-b8f1fe770543 vnc
salt '*' vmadm.info nacl key=alias
salt '*' vmadm.info nacl vnc key=alias
salt.modules.smartos_vmadm.list(search=None, sort=None, order='uuid, type, ram, state, alias', keyed=False)

Return a list of VMs

search
: string
Specifies the vmadm filter property
sort
: string
Specifies the vmadm sort (-s) property
order
: string
Specifies the vmadm order (-o) property Default: uuid,type,ram,state,alias
keyed
: boolean
Specified if the output should be an array (False) or dict (True)
Dict key is first field from order parameter Note: if key is not unique last vm wins.

CLI Example:

salt '*' vmadm.list
salt '*' vmadm.list order=alias,ram,cpu_cap sort=-ram,-cpu_cap
salt '*' vmadm.list search='type=KVM'
salt.modules.smartos_vmadm.lookup(search=None, order=None, one=False)

Return a list of VMs using lookup

search
: string
Specifies the vmadm filter property
order
: string
Specifies the vmadm order (-o) property Default: uuid,type,ram,state,alias
one
: boolean
Specifies if you to one result only (-1)

CLI Example:

salt '*' vmadm.lookup search='state=running'
salt '*' vmadm.lookup search='state=running' order=uuid,alias,hostname
salt '*' vmadm.lookup search='alias=nacl' one=True
salt.modules.smartos_vmadm.reboot(vm=None, force=False, key='uuid')

Reboot a vm

vm
: string
Specifies the vm to be rebooted
force
: boolean
Specifies if the vm should be force rebooted
key
: string
Specifies if 'vm' is a uuid, alias or hostname.

CLI Example:

salt '*' vmadm.reboot 186da9ab-7392-4f55-91a5-b8f1fe770543
salt '*' vmadm.reboot 186da9ab-7392-4f55-91a5-b8f1fe770543 True
salt '*' vmadm.reboot vm=nacl key=alias
salt '*' vmadm.reboot vm=nina.example.org key=hostname
salt.modules.smartos_vmadm.receive(uuid=None, source=None)

Receive a vm from a directory

uuid
: string
Specifies uuid of vm to receive
source
: string
Specifies the target. Can be a directory path.

CLI Example:

salt '*' vmadm.receive 186da9ab-7392-4f55-91a5-b8f1fe770543 /opt/backups
salt.modules.smartos_vmadm.reprovision(vm=None, image=None, key='uuid')

Reprovision a vm

vm
: string
Specifies the vm
image
: string
uuid of new image
key
: string
Specifies what 'vm' is. Value = uuid|alias|hostname

CLI Example:

salt '*' vmadm.reprovision 186da9ab-7392-4f55-91a5-b8f1fe770543 c02a2044-c1bd-11e4-bd8c-dfc1db8b0182
salt '*' vmadm.reprovision nacl c02a2044-c1bd-11e4-bd8c-dfc1db8b0182 key=alias
salt.modules.smartos_vmadm.rollback_snapshot(vm=None, name=None, key='uuid')

Rollback snapshot of a vm

vm
: string
Specifies the vm
name
: string
Name of snapshot. The snapname must be 64 characters or less and must only contain alphanumeric characters and characters in the set [-_.:%] to comply with ZFS restrictions.
key
: string
Specifies what 'vm' is. Value = uuid|alias|hostname

CLI Example:

salt '*' vmadm.rollback_snapshot 186da9ab-7392-4f55-91a5-b8f1fe770543 baseline
salt '*' vmadm.rollback_snapshot nacl baseline key=alias
salt.modules.smartos_vmadm.send(vm=None, target=None, key='uuid')

Send a vm to a directory

vm
: string
Specifies the vm to be started
target
: string
Specifies the target. Can be a directory path.
key
: string
Specifies if 'vm' is a uuid, alias or hostname.

CLI Example:

salt '*' vmadm.send 186da9ab-7392-4f55-91a5-b8f1fe770543 /opt/backups
salt '*' vmadm.send vm=nacl target=/opt/backups key=alias
salt.modules.smartos_vmadm.start(vm=None, options=None, key='uuid')

Start a vm

vm
: string
Specifies the vm to be started
options
: string
Specifies additional options
key
: string
Specifies if 'vm' is a uuid, alias or hostname.

CLI Example:

salt '*' vmadm.start 186da9ab-7392-4f55-91a5-b8f1fe770543
salt '*' vmadm.start 186da9ab-7392-4f55-91a5-b8f1fe770543 'order=c,once=d cdrom=/path/to/image.iso,ide'
salt '*' vmadm.start vm=nacl key=alias
salt '*' vmadm.start vm=nina.example.org key=hostname
salt.modules.smartos_vmadm.stop(vm=None, force=False, key='uuid')

Stop a vm

vm
: string
Specifies the vm to be stopped
force
: boolean
Specifies if the vm should be force stopped
key
: string
Specifies if 'vm' is a uuid, alias or hostname.

CLI Example:

salt '*' vmadm.stop 186da9ab-7392-4f55-91a5-b8f1fe770543
salt '*' vmadm.stop 186da9ab-7392-4f55-91a5-b8f1fe770543 True
salt '*' vmadm.stop vm=nacl key=alias
salt '*' vmadm.stop vm=nina.example.org key=hostname
salt.modules.smartos_vmadm.sysrq(vm=None, action='nmi', key='uuid')

Send non-maskable interupt to vm or capture a screenshot

vm
: string
Specifies the vm
action
: string
Specifies the action nmi or screenshot
key
: string
Specifies what 'vm' is. Value = uuid|alias|hostname

CLI Example:

salt '*' vmadm.sysrq 186da9ab-7392-4f55-91a5-b8f1fe770543 nmi
salt '*' vmadm.sysrq 186da9ab-7392-4f55-91a5-b8f1fe770543 screenshot
salt '*' vmadm.sysrq nacl nmi key=alias
salt.modules.smartos_vmadm.update(**kwargs)

Update a new vm

vm
: string
Specifies the vm to be updated
key
: string
Specifies if 'vm' is a uuid, alias or hostname.
from_file
: string
Specifies the json file to update the vm with. Note: when this is present all other options except 'vm' and 'key' will be ignored.
  • : string|int|...

    Specifies options to updte for the vm. Example: image_uuid=UUID, will specify the image_uuid for the vm to be created.

    add_nics='[{"nic_tag": "admin", "ip": "198.51.100.123", "netmask": "255.255.255.0"}]', adds 1 nic over the admin tag remove_nics='[ "12:ae:d3:28:98:b8" ], remove nics with mac 12:ae:d3:28:98:b8

CLI Example:

salt '*' vmadm.update vm=186da9ab-7392-4f55-91a5-b8f1fe770543 from_file=/tmp/new_vm.json
salt '*' vmadm.update vm=nacl key=alias from_file=/tmp/new_vm.json
salt '*' vmadm.update vm=186da9ab-7392-4f55-91a5-b8f1fe770543 max_physical_memory=1024