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

注意

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

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

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

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

概要

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

参数

参数

注释

archive_on_delete

布尔值

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

选项

  • false

  • true

autoboot

布尔值

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

选项

  • false

  • true

boot

字符串

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

brand

字符串

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

选项

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

别名:别名

字符串

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

nic_driver

字符串

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

nics

列表 / 元素=字典

要添加的网卡列表,有效属性在 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)