vmadm – Manage SmartOS virtual machines and zones
New in version 2.3.
Synopsis
- Manage SmartOS virtual machines through vmadm(1M).
Requirements
The below requirements are needed on the host that executes this module.
- python >= 2.6
Parameters
| Parameter | Choices/Defaults | Comments |
|---|---|---|
| archive_on_delete - | When enabled, the zone dataset will be mounted on /zones/archive upon removal. | |
| autoboot - | Whether or not a VM is booted when the system is rebooted. | |
| boot - | Set the boot order for KVM VMs. | |
| brand - / required |
| Type of virtual machine. |
| cpu_cap - | Sets a limit on the amount of CPU time that can be used by a VM. Use 0 for no cap. | |
| cpu_shares - | Sets a limit on the number of fair share scheduler (FSS) CPU shares for a VM. This limit is relative to all other VMs on the system. | |
| cpu_type - |
| Control the type of virtual CPU exposed to KVM VMs. |
| customer_metadata - | Metadata to be set and associated with this VM, this contain customer modifiable keys. | |
| delegate_dataset - | Whether to delegate a ZFS dataset to an OS VM. | |
| disk_driver - | Default value for a virtual disk model for KVM guests. | |
| disks - | A list of disks to add, valid properties are documented in vmadm(1M). | |
| dns_domain - | Domain value for /etc/hosts. | |
| docker - added in 2.5 | Docker images need this flag enabled along with the brand set to lx. | |
| filesystems - | Mount additional filesystems into an OS VM. | |
| firewall_enabled - | Enables the firewall, allowing fwadm(1M) rules to be applied. | |
| force - | Force a particular action (i.e. stop or delete a VM). | |
| fs_allowed - | Comma separated list of filesystem types this zone is allowed to mount. | |
| hostname - | Zone/VM hostname. | |
| image_uuid - | Image UUID. | |
| indestructible_delegated - | Adds an @indestructible snapshot to delegated datasets. | |
| indestructible_zoneroot - | Adds an @indestructible snapshot to zoneroot. | |
| internal_metadata - | Metadata to be set and associated with this VM, this contains operator generated keys. | |
| internal_metadata_namespace - | List of namespaces to be set as internal_metadata-only; these namespaces will come from internal_metadata rather than customer_metadata. | |
| kernel_version - | Kernel version to emulate for LX VMs. | |
| limit_priv - | Set (comma separated) list of privileges the zone is allowed to use. | |
| maintain_resolvers - | Resolvers in /etc/resolv.conf will be updated when updating the resolvers property. | |
| max_locked_memory - | Total amount of memory (in MiBs) on the host that can be locked by this VM. | |
| max_lwps - | Maximum number of lightweight processes this VM is allowed to have running. | |
| max_physical_memory - | Maximum amount of memory (in MiBs) on the host that the VM is allowed to use. | |
| max_swap - | Maximum amount of virtual memory (in MiBs) the VM is allowed to use. | |
| mdata_exec_timeout - | Timeout in seconds (or 0 to disable) for the svc:/smartdc/mdata:execute service that runs user-scripts in the zone. | |
| name - | Name of the VM. vmadm(1M) uses this as an optional name. aliases: alias | |
| nic_driver - | Default value for a virtual NIC model for KVM guests. | |
| nics - | A list of nics to add, valid properties are documented in vmadm(1M). | |
| nowait - | Consider the provisioning complete when the VM first starts, rather than when the VM has rebooted. | |
| qemu_extra_opts - | Additional qemu cmdline arguments for KVM guests. | |
| qemu_opts - | Additional qemu arguments for KVM guests. This overwrites the default arguments provided by vmadm(1M) and should only be used for debugging. | |
| quota - | Quota on zone filesystems (in MiBs). | |
| ram - | Amount of virtual RAM for a KVM guest (in MiBs). | |
| resolvers - | List of resolvers to be put into /etc/resolv.conf. | |
| routes - | Dictionary that maps destinations to gateways, these will be set as static routes in the VM. | |
| spice_opts - | Addition options for SPICE-enabled KVM VMs. | |
| spice_password - | Password required to connect to SPICE. By default no password is set. Please note this can be read from the Global Zone. | |
| state - / required |
| States for the VM to be in. Please note that present, stopped and restarted operate on a VM that is currently provisioned. present means that the VM will be created if it was absent, and that it will be in a running state. absent will shutdown the zone before removing it. stopped means the zone will be created if it doesn't exist already, before shutting it down. |
| tmpfs - | Amount of memory (in MiBs) that will be available in the VM for the /tmp filesystem. | |
| uuid - | UUID of the VM. Can either be a full UUID or * for all VMs. | |
| vcpus - | Number of virtual CPUs for a KVM guest. | |
| vga - | Specify VGA emulation used by KVM VMs. | |
| virtio_txburst - | Number of packets that can be sent in a single flush of the tx queue of virtio NICs. | |
| virtio_txtimer - | Timeout (in nanoseconds) for the TX timer of virtio NICs. | |
| vnc_password - | Password required to connect to VNC. By default no password is set. Please note this can be read from the Global Zone. | |
| vnc_port - | TCP port to listen of the VNC server. Or set 0 for random, or -1 to disable. | |
| zfs_data_compression - | Specifies compression algorithm used for this VMs data dataset. This option only has effect on delegated datasets. | |
| zfs_data_recsize - | Suggested block size (power of 2) for files in the delegated dataset's filesystem. | |
| zfs_filesystem_limit - | Maximum number of filesystems the VM can have. | |
| zfs_io_priority - | IO throttle priority value relative to other VMs. | |
| zfs_root_compression - | Specifies compression algorithm used for this VMs root dataset. This option only has effect on the zoneroot dataset. | |
| zfs_root_recsize - | Suggested block size (power of 2) for files in the zoneroot dataset's filesystem. | |
| zfs_snapshot_limit - | Number of snapshots the VM can have. | |
| zpool - | ZFS pool the VM's zone dataset will be created in. |
Examples
- name: create SmartOS zone
vmadm:
brand: joyent
state: present
alias: fw_zone
image_uuid: 95f265b8-96b2-11e6-9597-972f3af4b6d5
firewall_enabled: yes
indestructible_zoneroot: yes
nics:
- nic_tag: admin
ip: dhcp
primary: true
internal_metadata:
root_pw: 'secret'
quota: 1
- name: Delete a zone
vmadm:
alias: test_zone
state: deleted
- name: Stop all zones
vmadm:
uuid: '*'
state: stopped
Return Values
Common return values are documented here, the following are the fields unique to this module:
| Key | Returned | Description |
|---|---|---|
| alias string | When addressing a VM by alias. | Alias of the managed VM. Sample: dns-zone |
| state string | success | State of the target, after execution. Sample: running |
| uuid string | always | UUID of the managed VM. Sample: b217ab0b-cf57-efd8-cd85-958d0b80be33 |
Status
- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]
Authors
- Jasper Lievisse Adriaanse (@jasperla)
Hint
If you notice any issues in this documentation you can edit this document to improve it.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/vmadm_module.html