community.general.vmadm 模块 – 管理 SmartOS 虚拟机和区域

注意

此模块是 community.general 集合(版本 10.1.0)的一部分。

如果您正在使用 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general

要在 playbook 中使用它,请指定:community.general.vmadm

概要

  • 通过 vmadm(1M) 管理 SmartOS 虚拟机。

参数

参数

注释

archive_on_delete

布尔值

启用后,删除时,区域数据集将挂载在 /zones/archive 上。

选择

  • false

  • true

autoboot

布尔值

系统重启时是否启动虚拟机。

选择

  • false

  • true

boot

字符串

设置 KVM 虚拟机的启动顺序。

brand

字符串

虚拟机类型。在 community.general 0.2.0 中添加了 bhyve 选项。

选择

  • "joyent" ← (默认)

  • "joyent-minimal"

  • "lx"

  • "kvm"

  • "bhyve"

cpu_cap

整数

设置虚拟机可以使用的 CPU 时间量限制。使用 0 表示没有限制。

cpu_shares

整数

设置虚拟机的公平共享调度器 (FSS) CPU 份额数量的限制。此限制是相对于系统上的所有其他虚拟机而言的。

cpu_type

字符串

控制暴露给 KVM 虚拟机的虚拟 CPU 类型。

选择

  • "qemu64" ← (默认)

  • "host"

customer_metadata

字典

要设置并与此虚拟机关联的元数据,其中包含客户可修改的键。

delegate_dataset

布尔值

是否将 ZFS 数据集委托给 OS 虚拟机。

选择

  • false

  • true

disk_driver

字符串

KVM 客户机虚拟磁盘模型的默认值。

disks

列表 / 元素=字典

要添加的磁盘列表,有效属性在 vmadm(1M) 中有文档记录。

dns_domain

字符串

/etc/hosts 的域值。

docker

布尔值

Docker 映像需要启用此标志,并将 brand 设置为 lx

选择

  • false

  • true

filesystems

列表 / 元素=字典

将其他文件系统挂载到 OS 虚拟机中。

firewall_enabled

布尔值

启用防火墙,允许应用 fwadm(1M) 规则。

选择

  • false

  • true

force

布尔值

强制执行特定操作(即停止或删除虚拟机)。

选择

  • false

  • true

fs_allowed

字符串

此区域允许挂载的文件系统类型的逗号分隔列表。

hostname

字符串

区域/虚拟机主机名。

image_uuid

字符串

映像 UUID。

indestructible_delegated

布尔值

向委托数据集添加 @indestructible 快照。

选择

  • false

  • true

indestructible_zoneroot

布尔值

向 zoneroot 添加 @indestructible 快照。

选择

  • false

  • true

internal_metadata

字典

要设置并与此虚拟机关联的元数据,其中包含操作员生成的键。

internal_metadata_namespace

字符串

要设置为 internal_metadata-only 的命名空间列表;这些命名空间将来自 internal_metadata 而不是 customer_metadata

kernel_version

字符串

为 LX 虚拟机模拟的内核版本。

limit_priv

字符串

设置区域允许使用的权限(逗号分隔)列表。

maintain_resolvers

布尔值

当更新 resolvers 属性时,/etc/resolv.conf 中的解析器将被更新。

选择

  • false

  • true

max_locked_memory

整数

此虚拟机可以在主机上锁定的最大内存量(以 MiB 为单位)。

max_lwps

整数

此虚拟机允许运行的最大轻量级进程数。

max_physical_memory

整数

虚拟机允许使用的主机上的最大内存量(以 MiB 为单位)。

max_swap

整数

虚拟机允许使用的最大虚拟内存量(以 MiB 为单位)。

mdata_exec_timeout

整数

svc:/smartdc/mdata:execute 服务(在区域中运行用户脚本)的超时时间(以秒为单位)(或 0 表示禁用)。

name

别名:alias

字符串

虚拟机的名称。vmadm(1M) 将其用作可选名称。

nic_driver

字符串

KVM 客户机虚拟 NIC 模型的默认值。

nics

列表 / 元素=字典

要添加的 nic 列表,有效属性在 vmadm(1M) 中有文档记录。

nowait

布尔值

当虚拟机首次启动时(而不是在虚拟机重新启动时),认为配置已完成。

选择

  • false

  • true

qemu_extra_opts

字符串

KVM 客户机的其他 qemu 命令行参数。

qemu_opts

字符串

KVM 客户机的其他 qemu 参数。这将覆盖 vmadm(1M) 提供的默认参数,仅应用于调试。

quota

整数

区域文件系统的配额(以 MiB 为单位)。

ram

整数

KVM 客户机的虚拟 RAM 量(以 MiB 为单位)。

resolvers

列表 / 元素=字符串

要放入 /etc/resolv.conf 中的解析器列表。

routes

字典

将目标地址映射到网关的字典,这些将在虚拟机中设置为静态路由。

spice_opts

字符串

用于启用 SPICE 的 KVM 虚拟机的其他选项。

spice_password

字符串

连接到 SPICE 所需的密码。默认情况下,不设置密码。请注意,可以从全局区域读取此密码。

state

字符串

虚拟机要处于的状态。请注意,presentstoppedrestarted 操作的是当前已配置的虚拟机。present 表示如果虚拟机不存在,则会创建它,并且它将处于运行状态。absent 将在删除区域之前关闭它。stopped 表示如果区域尚不存在,则会先创建它,然后再关闭它。

选择

  • "present"

  • "running" ← (默认)

  • "absent"

  • "deleted"

  • "stopped"

  • "created"

  • "restarted"

  • "rebooted"

tmpfs

整数

虚拟机中可用于 /tmp 文件系统的内存量(以 MiB 为单位)。

uuid

字符串

虚拟机的 UUID。可以是完整的 UUID,也可以是 * 表示所有虚拟机。

vcpus

整数

KVM 客户机的虚拟 CPU 数量。

vga

字符串

指定 KVM 虚拟机使用的 VGA 仿真。

virtio_txburst

整数

在 virtio 网卡的 tx 队列的单次刷新中可以发送的数据包数量。

virtio_txtimer

整数

virtio 网卡的 TX 计时器超时时间(以纳秒为单位)。

vnc_password

字符串

连接到 VNC 所需的密码。默认情况下,不设置密码。请注意,可以从全局区域读取此密码。

vnc_port

整数

VNC 服务器监听的 TCP 端口。或者设置为 0 表示随机端口,或 -1 表示禁用。

zfs_data_compression

字符串

指定用于此虚拟机数据数据集的压缩算法。此选项仅对委托数据集有效。

zfs_data_recsize

整数

委托数据集文件系统中建议的文件块大小(2 的幂)。

zfs_filesystem_limit

整数

虚拟机可以拥有的最大文件系统数量。

zfs_io_priority

整数

相对于其他虚拟机的 IO 节流优先级值。

zfs_root_compression

字符串

指定用于此虚拟机根数据集的压缩算法。此选项仅对 zoneroot 数据集有效。

zfs_root_recsize

整数

zoneroot 数据集文件系统中建议的文件块大小(2 的幂)。

zfs_snapshot_limit

整数

虚拟机可以拥有的快照数量。

zpool

字符串

将在其中创建虚拟机区域数据集的 ZFS 池。

属性

属性

支持

描述

check_mode

支持: 完全

可以在 check_mode 下运行并返回更改状态预测,而无需修改目标。

diff_mode

支持:

当处于差异模式时,将返回有关已更改的内容(或可能需要在 check_mode 下更改的内容)的详细信息。

示例

- name: Create SmartOS zone
  community.general.vmadm:
    brand: joyent
    state: present
    alias: fw_zone
    image_uuid: 95f265b8-96b2-11e6-9597-972f3af4b6d5
    firewall_enabled: true
    indestructible_zoneroot: true
    nics:
      - nic_tag: admin
        ip: dhcp
        primary: true
    internal_metadata:
      root_pw: 'secret'
    quota: 1

- name: Delete a zone
  community.general.vmadm:
    alias: test_zone
    state: deleted

- name: Stop all zones
  community.general.vmadm:
    uuid: '*'
    state: stopped

返回值

通用返回值记录在 此处,以下是此模块特有的字段

描述

alias

字符串

被管理虚拟机的别名。

返回: 当按别名寻址虚拟机时。

示例: "dns-zone"

state

字符串

执行后,目标的状态。

返回: 成功

示例: "running"

uuid

字符串

被管理虚拟机的 UUID。

返回: 总是

示例: "b217ab0b-cf57-efd8-cd85-958d0b80be33"

作者

  • Jasper Lievisse Adriaanse (@jasperla)