ovirt.ovirt.ovirt_vm 模块 – 用于管理 oVirt/RHV 中的虚拟机的模块
注意
此模块是 ovirt.ovirt 集合(版本 3.2.0)的一部分。
如果您使用的是 ansible
包,您可能已经安装了此集合。 它不包含在 ansible-core
中。 要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install ovirt.ovirt
。您需要其他要求才能使用此模块,请参阅 要求 以了解详细信息。
要在 playbook 中使用它,请指定:ovirt.ovirt.ovirt_vm
。
ovirt.ovirt 1.0.0 中的新增功能
概要
此模块管理 oVirt/RHV 中虚拟机 (VM) 的整个生命周期。
由于 VM 在 oVirt/RHV 中可以保持多种状态,请参阅注释以了解如何处理 VM 的状态。
要求
在执行此模块的主机上需要以下要求。
python >= 2.7
ovirt-engine-sdk-python >= 4.4.0
参数
参数 |
注释 |
---|---|
映射器,用于映射 VM 的 OVF 和虚拟机应注册到的目标亲和性之间的亲和性名称,当 |
|
映射器,用于映射 VM 的 OVF 和虚拟机应注册到的目标标签之间的亲和性标签名称,当 |
|
当 选项
|
|
包含创建到 oVirt 的 HTTP/HTTPS 连接所需值的字典 |
|
一个包含受信任的 CA 证书的 PEM 文件。 服务器提供的证书将使用这些 CA 证书进行验证。 如果未设置 默认值由 |
|
标志指示是否对连接使用压缩。 选项
|
|
要添加到每个 API 调用的 HTTP 标头的字典。 |
|
一个包含服务器主机名的字符串,通常类似于 `server.example.com`。 默认值由 需要 |
|
一个布尔标志,指示是否应检查服务器 TLS 证书和主机名。 选项
|
|
一个布尔标志,指示是否应使用 Kerberos 身份验证而不是默认的基本身份验证。 选项
|
|
用户的密码。 默认值由 |
|
等待响应的秒数。 |
|
用于代替使用用户名/密码登录的令牌。 默认值由 |
|
一个包含服务器 API URL 的字符串,通常类似于 `https://server.example.com/ovirt-engine/api`。 默认值由 需要 |
|
用户名,类似于 admin@internal。 默认值由 |
|
如果为 true,则使用内存气球。 内存气球是一种客户机设备,可用于根据 VM 的需求以动态方式重新分配/回收主机内存。这样就可以创建内存过度分配状态。 选项
|
|
设置 BIOS 类型,对于某些操作系统和安全启动是必需的。 如果未传递任何值,则从群集设置默认值。 注意 - 自 oVirt 4.3 起支持。 选项
|
|
应使用引导的引导设备列表。例如 默认值由 oVirt/RHV 引擎设置。 选项
|
|
True 启用菜单以选择引导设备,False 禁用它。默认情况下由 oVirt/RHV 引擎选择。 选项
|
|
应附加到虚拟机的 ISO 存储域中的 ISO 文件。 如果您有多个同名的 ISO 磁盘,请使用磁盘 ID 指定应使用哪个磁盘或使用 如果传递空字符串,则 CD 将从 VM 中弹出。 如果与 如果与 |
|
如果为 yes,则创建的虚拟机的磁盘将被克隆,并且独立于模板。 此参数仅在 选项
|
|
如果为 yes,则模板的权限(仅直接权限,而不是继承的权限)将复制到创建的虚拟机。 此参数仅在 选项
|
|
使用 cloud init 进行类 Unix 虚拟机初始化的值字典。 |
|
使用此 SSH 密钥登录虚拟机。 |
|
在虚拟机部署时将在其上执行的 Cloud-init 脚本。 此脚本将附加到由任何其他选项生成的 cloud-init 脚本的末尾。 有关更多信息,请参阅 cloud-init User-Data 文档。 |
|
要在虚拟机上配置的 DNS 搜索域。 |
|
要在虚拟机上配置的 DNS 服务器,最多两个,用空格分隔。 |
|
要在虚拟机部署时设置的主机名。 |
|
设置虚拟机网络接口的引导协议。 选项
|
|
设置虚拟机网络接口的引导协议。 选项
|
|
如果引导协议为 static,则将此网关设置为虚拟机的网络接口。 |
|
如果引导协议为 static,则将此网关设置为虚拟机的网络接口。 对于 IPv6 地址,该值是 0-128 范围内的整数,表示子网前缀。 |
|
如果引导协议为 static,则将此 IP 地址设置为虚拟机的网络接口。 |
|
如果引导协议为 static,则将此 IP 地址设置为虚拟机的网络接口。 |
|
设置虚拟机网络接口的名称。 |
|
如果引导协议为 static,则将此网络掩码设置为虚拟机的网络接口。 |
|
如果引导协议为 static,则将此网络掩码设置为虚拟机的网络接口。 |
|
如果为 True,则将在虚拟机上重新生成 SSH 密钥。 选项
|
|
为 |
|
要在虚拟机部署时设置的时区。 |
|
在虚拟机部署时用于设置密码的用户名。 |
|
表示要通过 cloud init 设置的网络接口的字典列表。 当用户需要通过 cloud init 设置更多网络接口时,使用此选项。 如果一个网络接口足够,则用户应使用 |
|
设置虚拟机网络接口的引导协议。可以是 |
|
设置虚拟机网络接口的引导协议。可以是 |
|
如果引导协议为 static,则将此网关设置为虚拟机的网络接口。 |
|
如果引导协议为 static,则将此网关设置为虚拟机的网络接口。 对于 IPv6 地址,该值是 0-128 范围内的整数,表示子网前缀。 |
|
如果引导协议为 static,则将此 IP 地址设置为虚拟机的网络接口。 |
|
如果引导协议为 static,则将此 IP 地址设置为虚拟机的网络接口。 |
|
设置虚拟机网络接口的名称。 |
|
如果引导协议为 static,则将此网络掩码设置为虚拟机的网络接口。 |
|
如果引导协议为 static,则将此网络掩码设置为虚拟机的网络接口。 |
|
如果为 yes,则将保存虚拟机的 选项
|
|
应在其中创建虚拟机的集群名称。 如果创建虚拟机,则为必填项。 |
|
当 |
|
目标集群的名称。 |
|
源集群的名称。 |
|
虚拟机的注释。 |
|
虚拟机的虚拟 CPU 内核数。 默认值由 oVirt/RHV 引擎设置。 |
|
虚拟机的 CPU 模式。它可以是以下几种之一:host_passthrough、host_model 或 custom。 对于 host_passthrough CPU 类型,您需要将 如果未传递值,则默认值由 oVirt/RHV 引擎设置。 |
|
将虚拟机 CPU 映射到主机 CPU 的 CPU 固定拓扑。 CPU 固定拓扑是字典列表,可以具有以下值 |
|
主机 CPU 的编号。 |
|
虚拟机 CPU 的编号。 |
|
为此虚拟机设置 CPU 份额。 默认值由 oVirt/RHV 引擎设置。 |
|
虚拟机的虚拟 CPU 插槽数。 默认值由 oVirt/RHV 引擎设置。 |
|
虚拟机的每个核心的线程数。 默认值由 oVirt/RHV 引擎设置。 |
|
使虚拟机可以自定义为其自己的兼容性版本。如果设置了“ |
|
设置 custom_emulated_machine 属性的值。 |
|
发送到 VDSM 以配置各种挂钩的属性。 自定义属性是字典列表,可以具有以下值 |
|
自定义属性的名称。例如:hugepages、vhost、sap_agent 等。 |
|
要为自定义属性设置的正则表达式。 |
|
要为自定义属性设置的值。 |
|
如果为 yes,则虚拟机将被设置为删除保护。 如果为 no,则虚拟机将不会被设置为删除保护。 如果未传递值,则默认值由 oVirt/RHV 引擎设置。 选项
|
|
虚拟机的描述。 |
|
指定磁盘的格式。 如果使用 如果使用 请注意,此选项不是幂等的,因为它目前无法通过 API 更改磁盘格式。 仅当提供 选项
|
|
应附加到虚拟机的磁盘列表。磁盘由以下字典描述。 |
|
如果应激活磁盘,则为 True,默认情况下已激活。 注意 - 此参数仅在 选项
|
|
如果磁盘应可引导,则为 True,默认情况下不可引导。 选项
|
|
磁盘的 ID。需要 |
|
磁盘的接口。 选项
|
|
磁盘的名称。需要 |
|
当 |
|
目标 aaa 域的名称。 |
|
源 aaa 域的名称。 |
|
当 选项
|
|
当 |
|
用于将虚拟机导出为 OVA 的值字典。 |
|
必须导出 OVA 的目录的名称。 |
|
导出的 OVA 文件的名称。 |
|
必须导出 OVA 的目标主机的名称。 |
|
如果为 True,则模块将从 API 获取其他数据。 它将获取虚拟机磁盘、快照等的 ID。用户可以通过指定 选项
|
|
请查看概要以获取有关 force 参数的更详细描述,它在不同的情况下可能表现不同。 选项
|
|
如果为 true,则当 placement_policy=user-migratable 时,虚拟机将迁移,但当 placement_policy=pinned 时不会迁移。 选项
|
|
为虚拟机分配图形控制台。 |
|
指示用户是否能够将内容从外部主机复制粘贴到图形控制台中。 此选项仅适用于 SPICE 控制台类型。 选项
|
|
返回断开图形控制台(仅限 SPICE)时将发生的操作。选项为 none 不执行任何操作。 lock_screen 锁定当前活动的用户会话。 logout 注销当前活动的用户会话。 reboot 启动虚拟机正常重启。 shutdown 启动虚拟机正常关闭。 |
|
指示用户是否能够将文件从外部主机拖放到图形控制台中。 此选项仅适用于 SPICE 控制台类型。 选项
|
|
如果为 true,则禁用此虚拟机的图形控制台。 选项
|
|
此图形控制台要使用的键盘布局。 此选项仅适用于 VNC 控制台类型。 如果未启用键盘,则不会报告。 |
|
为此图形控制台打开的监视器数量。 此选项仅适用于 SPICE 协议。 可能的值为 1、2 或 4。 |
|
图形协议,spice、vnc 或两者兼有的列表。 |
|
如果为 yes,则虚拟机将被设置为高可用性。 如果为 no,则虚拟机将不会被设置为高可用性。 如果未传递值,则默认值由 oVirt/RHV 引擎设置。 选项
|
|
指示虚拟机在运行和迁移队列中的优先级。具有较高优先级的虚拟机将在具有较低优先级的虚拟机之前启动和迁移。该值是介于 0 和 100 之间的整数。值越高,优先级越高。 如果未传递值,则默认值由 oVirt/RHV 引擎设置。 |
|
指定虚拟机应在其上运行的主机。默认情况下,主机由引擎调度程序选择。 此参数仅在 |
|
单根 I/O 虚拟化 - 一种允许单个设备暴露多个可传递给虚拟机的端点的技术。 host_devices 是一个列表,其中包含具有设备名称和状态的字典。 |
|
要管理的虚拟机的 ID。 |
|
初始 RAM 磁盘的路径,用于与 Ramdisk 镜像必须存储在 ISO 域或主机的存储上。 |
|
虚拟机硬件配置的名称。 默认情况下不使用任何实例类型。 |
|
虚拟机使用的 IO 线程数。 *0* 表示禁用 IO 线程。 |
|
内核命令行参数(格式化为字符串),用于与 |
|
如果为 *true*,则 选项
|
|
用于启动虚拟机的内核镜像的路径。 内核镜像必须存储在 ISO 域或主机的存储上。 |
|
用于连接到 KVM 并将虚拟机导入 oVirt 的值字典。 |
|
包含驱动程序的 ISO 名称,该驱动程序可在 *virt-v2v* 转换过程中使用。 |
|
KVM 虚拟机的名称。 |
|
用于对 KVM 进行身份验证的密码。 |
|
指定生成的虚拟机的磁盘分配策略。 *true* 表示稀疏分配,*false* 表示预分配。 选项
|
|
指定转换后的磁盘的目标存储域。这是一个必需参数。 |
|
要传递给 *virt-v2v* 工具进行转换的 URL。 例如 *qemu:///system*。这是一个必需参数。 |
|
用于对 KVM 进行身份验证的用户名。 |
|
此虚拟机租约所在的存储域的名称。传递空字符串以删除租约。 注意 - 自 oVirt 4.1 起受支持。 |
|
映射器,用于在虚拟机的 OVF 和此虚拟机应包含的目标 LUN 之间映射 LUN,当 |
|
块存储主机的地址。 |
|
用于标识逻辑单元的逻辑单元号。 |
|
用于连接到块存储主机的密码。 |
|
用于连接 LUN 磁盘的端口。 |
|
用于连接 LUN 磁盘的门户。 |
|
位于 iSCSI 服务器上的 iSCSI 规范。 |
|
用于连接到块存储主机的用户名。 |
|
LUN 所在的存储类型(iscsi 或 fcp) |
|
虚拟机的内存量。前缀使用 IEC 60027-2 标准(例如 1GiB,1024MiB)。 默认值由引擎设置。 |
|
虚拟机的最小保证内存量。前缀使用 IEC 60027-2 标准(例如 1GiB,1024MiB)。
默认值由引擎设置。 |
|
虚拟机内存上限,内存热插拔可以执行到此上限。前缀使用 IEC 60027-2 标准(例如 1GiB,1024MiB)。 默认值由引擎设置。 |
|
如果为 *true*,虚拟机将迁移到任何可用的主机。 选项
|
|
如果为 `true`,则每个虚拟接口将根据可用的虚拟 CPU 获取最佳数量的队列。 选项
|
|
要管理的虚拟机的名称。 如果虚拟机不存在,则需要 |
|
指定应从 API 获取的属性列表。 此参数仅在 |
|
如果为 *true*,则更新不会立即应用于虚拟机,而仅在虚拟机重新启动时应用。 注意 - 如果虚拟机上有多个下次运行配置更改,则如果未传递此选项,则第一个更改可能会被还原。 选项
|
|
应附加到虚拟机的网卡列表。网卡由以下字典描述。 |
|
网络接口的类型。 选项
|
|
网络接口的自定义 MAC 地址,默认情况下从 MAC 池获取。 注意 - 此参数仅在 |
|
网卡的名称。 |
|
应附加网卡的配置文件名称。 |
|
要为此虚拟机设置的 vNUMA 节点列表,并将它们固定到指定主机的物理 NUMA 节点。 每个 vNUMA 节点由以下字典描述 |
|
要包含在此 NUMA 节点中的虚拟机 CPU 核心索引列表。 |
|
此 NUMA 节点的索引。 |
|
NUMA 节点的内存大小,单位为 MiB。 |
|
要将此虚拟 NUMA 节点固定到的物理 NUMA 节点索引列表。 |
|
设置如何应用此虚拟机的 NUMA 节点内存分配(如果为此虚拟机设置了 NUMA 节点,则相关)。 它可以是以下值之一:*interleave*、*preferred* 或 *strict*。 如果未传递值,则默认值由 oVirt/RHV 引擎设置。 选项
|
|
虚拟机放置策略的配置。 如果未传递值,则默认值由 oVirt/RHV 引擎设置。 放置策略可以是以下值之一 |
|
允许手动和自动迁移。 |
|
不允许迁移。 |
|
仅允许手动迁移。 |
|
主机名称列表。 |
|
模块等待多少秒才发送另一个实体状态轮询请求。 默认值: |
|
用于磁盘的虚拟机配额 ID。默认情况下,配额由 oVirt/RHV 引擎选择。 |
|
指示当 选项
|
|
随机数生成器 (RNG)。您可以选择以下设备之一:*urandom*、*random* 或 *hwrng*。 要选择 *hwrng*,您必须首先在集群上启用它。 /dev/urandom 用于集群版本 >= 4.1,而 /dev/random 用于集群版本 <= 4.0 |
|
映射器,用于在虚拟机的 OVF 和此虚拟机应注册到的目标角色之间映射角色名称,当 |
|
目标角色的名称。 |
|
源角色的名称。 |
|
*True* 启用 VirtIO 串行控制台,*False* 禁用它。默认情况下由 oVirt/RHV 引擎选择。 选项
|
|
指定虚拟机的序列号策略。 支持以下选项。
选项
|
|
允许您指定自定义序列号。 此参数仅在 |
|
如果为 *true*,则使用智能卡身份验证。 选项
|
|
要从中克隆虚拟机的快照。 应存在具有指定描述的快照。 您必须使用此快照的虚拟机名称指定 |
|
要从中克隆虚拟机的源虚拟机。 虚拟机应具有由 如果指定了 |
|
如果为 *true*,则将声卡添加到虚拟机。 选项
|
|
*True* 启用 Guest Agent 的单点登录,*False* 禁用它。默认情况下由 oVirt/RHV 引擎选择。 选项
|
|
虚拟机应为运行/停止/存在/不存在/暂停/下次运行/已注册/已导出/重新启动状态。当 *present* 状态将创建/更新虚拟机,如果虚拟机已存在,则不会更改其状态。 *running* 状态将创建/更新虚拟机并启动它。 *next_run* 状态会更新虚拟机,如果虚拟机具有下次运行配置,则会重新启动。 请检查 *notes* 以获取更详细的状态描述。 *exported* 状态会将虚拟机导出到导出域或作为 OVA。 自 2.4 起支持 *registered*。 自 2.10 起支持 *reboot*,仅当虚拟机处于启动状态时才会重新启动。 *reset* 向虚拟机发送重置请求。 选项
|
|
如果为是,虚拟机将被设置为无状态。 如果为否,虚拟机将被取消设置为无状态。 如果未传递值,则默认值由 oVirt/RHV 引擎设置。 选项
|
|
应在其中创建所有模板磁盘的存储域的名称。 仅当提供了 重要提示 - 此参数不是幂等的,如果虚拟机存在并且您指定了不同的存储域,磁盘将不会移动。 |
|
如果此虚拟机上某些磁盘所在的存储变得无响应,则虚拟机会被暂停。 以下是可能的选项,当存储再次可用时,应该对虚拟机执行的操作。 选项
|
|
使用 sysprep 初始化 Windows 虚拟机的字典值。 |
|
Active Directory 组织单元,用于用户登录。 |
|
自定义 Sysprep 定义,格式为完整的无人值守安装应答文件。 |
|
要设置给 Windows 虚拟机的域。 |
|
要在虚拟机部署时设置的主机名。 |
|
Windows 虚拟机的输入本地化。 |
|
要设置给 Windows 虚拟机的组织名称。 |
|
要为 Windows 虚拟机用户名设置的密码。 |
|
Windows 虚拟机的系统本地化。 |
|
要设置给 Windows 虚拟机的时区。 |
|
Windows 虚拟机的 UI 语言。 |
|
用于设置 Windows 虚拟机密码的用户名。 |
|
要设置给 Windows 虚拟机的许可证密钥。 |
|
应该用于创建虚拟机的模板的名称。 如果创建虚拟机,则为必填项。 如果未指定模板且虚拟机不存在,则将从空白模板创建虚拟机。 |
|
要用于虚拟机的模板的版本号。 默认情况下,使用模板的最新可用版本。 |
|
如果为true,则在vm字典中额外返回remote_vv_file,其中包含与远程查看器应用程序兼容的内容。 仅当 选项
|
|
模块应等待实例进入所需状态的时间(以秒为单位)。 默认值: |
|
设置客户机硬件时区的时区偏移量。 例如 |
|
如果为“true”,则将 TPM 设备添加到虚拟机。 选项
|
|
虚拟机的类型。 默认值由 oVirt/RHV 引擎设置。 自 Ansible 2.5 和 oVirt/RHV 4.2 起支持high_performance。 选项
|
|
True启用 USB 支持,False 禁用 USB 支持。默认情况下由 oVirt/RHV 引擎选择。 选项
|
|
指定在运行无状态虚拟机时是否应使用最新模板版本。 如果此参数设置为yes,则会创建无状态虚拟机。 选项
|
|
启用 Virtio SCSI 支持。 选项
|
|
Virtio-SCSI 控制器的队列数,可能的值:-1 - 表示将自动设置队列。 0 - 表示将禁用 Virtio SCSI 多队列。 >0 - 虚拟机要使用的 Virtio SCSI 队列数。 |
|
用于连接到 VMware 并将虚拟机导入 oVirt 的值的字典。 |
|
包含驱动程序的 ISO 名称,该驱动程序可在 *virt-v2v* 转换过程中使用。 |
|
用于针对 VMware 进行身份验证的密码。 |
|
指定生成的虚拟机的磁盘分配策略。 *true* 表示稀疏分配,*false* 表示预分配。 选项
|
|
指定转换后的磁盘的目标存储域。这是一个必需参数。 |
|
要传递给 *virt-v2v* 工具进行转换的 URL。 例如vpx://wmware_user@vcenter-host/DataCenter/Cluster/esxi-host?no_verify=1 |
|
用于针对 VMware 进行身份验证的用户名。 |
|
当 |
|
源网络的网络名称。 |
|
与源网络相关的配置文件名称。 |
|
要在引擎中映射到的目标配置文件 ID。 |
|
指示即使在客户机启动重启的情况下,也将丢弃此运行配置。 选项
|
|
如果模块应等待实体进入所需状态,则为 选项
|
|
模块在租赁更改后应等待的秒数。 默认值: |
|
为虚拟机分配看门狗设备。 看门狗是一个字典,可以具有以下值 |
|
触发看门狗时要执行的看门狗操作。例如:none、reset、poweroff、pause 或 dump。 |
|
看门狗设备的型号。例如:i6300esb、diag288 或 null。 |
|
用于连接到 XEN 并将虚拟机导入 oVirt 的值的字典。 |
|
包含驱动程序的 ISO 名称,该驱动程序可在 *virt-v2v* 转换过程中使用。 |
|
指定生成的虚拟机的磁盘分配策略。 *true* 表示稀疏分配,*false* 表示预分配。 选项
|
|
指定转换后的磁盘的目标存储域。这是一个必需参数。 |
|
要传递给 *virt-v2v* 工具进行转换的 URL。 例如 xen+ssh://root@zen.server。这是必需的参数。 |
备注
注意
如果虚拟机在任何操作之前处于UNASSIGNED或UNKNOWN状态,则模块将失败。 如果虚拟机在任何操作之前处于IMAGE_LOCKED状态,我们将尝试等待虚拟机变为DOWN状态。 如果虚拟机在任何操作之前处于SAVING_STATE状态,我们将尝试等待虚拟机变为SUSPENDED状态。 如果虚拟机在任何操作之前处于POWERING_DOWN状态,我们将尝试等待虚拟机变为UP或DOWN状态。 当虚拟机内部没有 ACPI 或客户机代理运行时,或者如果关闭操作失败,虚拟机可能会从POWERING_DOWN状态变为UP状态。 当用户指定UP
state
时,如果虚拟机处于MIGRATING、REBOOTING、POWERING_UP、RESTORING_STATE、WAIT_FOR_LAUNCH状态,我们始终会等待虚拟机变为UP状态。 在其他状态下,我们在虚拟机上运行启动操作。 当用户指定stoppedstate
时,如果用户传递的force
参数设置为true,我们将强制停止任何状态的虚拟机。 如果用户未传递force
参数,如果虚拟机处于MIGRATING、REBOOTING、POWERING_UP、RESTORING_STATE、WAIT_FOR_LAUNCH状态,我们始终会等待虚拟机变为 UP 状态。 如果虚拟机处于PAUSED或SUSPENDED状态,我们将启动虚拟机。 然后,我们会正常关闭虚拟机。 当用户指定suspendedstate
时,如果虚拟机处于MIGRATING、REBOOTING、POWERING_UP、RESTORING_STATE、WAIT_FOR_LAUNCH状态,我们始终会等待虚拟机变为 UP 状态。 如果虚拟机处于PAUSED或DOWN状态,我们将启动虚拟机。 然后,我们暂停虚拟机。 当用户指定absentstate
时,我们将强制停止任何状态的虚拟机并将其删除。如果您更新了需要重启的虚拟机参数,则 oVirt 引擎始终会为虚拟机创建新的快照,并且 Ansible playbook 会将其报告为已更改。
为了使用此模块,您必须安装 oVirt Python SDK。 要确保它以正确的版本安装,您可以创建以下任务:pip: name=ovirt-engine-sdk-python version=4.4.0
示例
# Examples don't contain auth parameter for simplicity,
# look at ovirt_auth module to see how to reuse authentication:
- name: Creates a new Virtual Machine from template named 'rhel7_template'
ovirt.ovirt.ovirt_vm:
state: present
name: myvm
template: rhel7_template
cluster: mycluster
- name: Register VM
ovirt.ovirt.ovirt_vm:
state: registered
storage_domain: mystorage
cluster: mycluster
name: myvm
- name: Register VM using id
ovirt.ovirt.ovirt_vm:
state: registered
storage_domain: mystorage
cluster: mycluster
id: 1111-1111-1111-1111
- name: Register VM, allowing partial import
ovirt.ovirt.ovirt_vm:
state: registered
storage_domain: mystorage
allow_partial_import: "True"
cluster: mycluster
id: 1111-1111-1111-1111
- name: Register VM with vnic profile mappings and reassign bad macs
ovirt.ovirt.ovirt_vm:
state: registered
storage_domain: mystorage
cluster: mycluster
id: 1111-1111-1111-1111
vnic_profile_mappings:
- source_network_name: mynetwork
source_profile_name: mynetwork
target_profile_id: 3333-3333-3333-3333
- source_network_name: mynetwork2
source_profile_name: mynetwork2
target_profile_id: 4444-4444-4444-4444
reassign_bad_macs: "True"
- name: Register VM with mappings
ovirt.ovirt.ovirt_vm:
state: registered
storage_domain: mystorage
cluster: mycluster
id: 1111-1111-1111-1111
role_mappings:
- source_name: Role_A
dest_name: Role_B
domain_mappings:
- source_name: Domain_A
dest_name: Domain_B
lun_mappings:
- source_storage_type: iscsi
source_logical_unit_id: 1IET_000d0001
source_logical_unit_port: 3260
source_logical_unit_portal: 1
source_logical_unit_address: 10.34.63.203
source_logical_unit_target: iqn.2016-08-09.brq.str-01:omachace
dest_storage_type: iscsi
dest_logical_unit_id: 1IET_000d0002
dest_logical_unit_port: 3260
dest_logical_unit_portal: 1
dest_logical_unit_address: 10.34.63.204
dest_logical_unit_target: iqn.2016-08-09.brq.str-02:omachace
affinity_group_mappings:
- source_name: Affinity_A
dest_name: Affinity_B
affinity_label_mappings:
- source_name: Label_A
dest_name: Label_B
cluster_mappings:
- source_name: cluster_A
dest_name: cluster_B
- name: Creates a stateless VM which will always use latest template version
ovirt.ovirt.ovirt_vm:
name: myvm
template: rhel7
cluster: mycluster
use_latest_template_version: true
# Creates a new server rhel7 Virtual Machine from Blank template
# on brq01 cluster with 2GiB memory and 2 vcpu cores/sockets
# and attach bootable disk with name rhel7_disk and attach virtio NIC
- ovirt.ovirt.ovirt_vm:
state: present
cluster: brq01
name: myvm
memory: 2GiB
cpu_cores: 2
cpu_sockets: 2
cpu_shares: 1024
type: server
operating_system: rhel_7x64
disks:
- name: rhel7_disk
bootable: True
nics:
- name: nic1
# Change VM Name
- ovirt.ovirt.ovirt_vm:
id: 00000000-0000-0000-0000-000000000000
name: "new_vm_name"
- name: Run VM with cloud init
ovirt.ovirt.ovirt_vm:
name: rhel7
template: rhel7
cluster: Default
memory: 1GiB
high_availability: true
high_availability_priority: 50 # Available from Ansible 2.5
cloud_init:
dns_servers: '8.8.8.8 8.8.4.4'
nic_boot_protocol: static
nic_ip_address: 10.34.60.86
nic_netmask: 255.255.252.0
nic_gateway: 10.34.63.254
nic_name: eth1
host_name: example.com
custom_script: |
write_files:
- content: |
Hello, world!
path: /tmp/greeting.txt
permissions: '0644'
user_name: root
root_password: super_password
- name: Run VM with cloud init, with multiple network interfaces
ovirt.ovirt.ovirt_vm:
name: rhel7_4
template: rhel7
cluster: mycluster
cloud_init_nics:
- nic_name: eth0
nic_boot_protocol: dhcp
- nic_name: eth1
nic_boot_protocol: static
nic_ip_address: 10.34.60.86
nic_netmask: 255.255.252.0
nic_gateway: 10.34.63.254
# IP version 6 parameters are supported since ansible 2.9
- nic_name: eth2
nic_boot_protocol_v6: static
nic_ip_address_v6: '2620:52:0:2282:b898:1f69:6512:36c5'
nic_gateway_v6: '2620:52:0:2282:b898:1f69:6512:36c9'
nic_netmask_v6: '120'
- nic_name: eth3
nic_boot_protocol_v6: dhcp
- name: Run VM with sysprep
ovirt.ovirt.ovirt_vm:
name: windows2012R2_AD
template: windows2012R2
cluster: Default
memory: 3GiB
high_availability: true
sysprep:
host_name: windowsad.example.com
user_name: Administrator
root_password: SuperPassword123
- name: Migrate/Run VM to/on host named 'host1'
ovirt.ovirt.ovirt_vm:
state: running
name: myvm
host: host1
- name: Migrate/Run VM to/on host named 'host1' on cluster 'cluster1'
ovirt.ovirt.ovirt_vm:
state: running
name: myvm
host: host1
cluster: cluster1
- name: Migrate VM to any available host
ovirt.ovirt.ovirt_vm:
state: running
name: myvm
migrate: true
- name: Change VMs CD
ovirt.ovirt.ovirt_vm:
name: myvm
cd_iso: drivers.iso
- name: Eject VMs CD
ovirt.ovirt.ovirt_vm:
name: myvm
cd_iso: ''
- name: Boot VM from CD
ovirt.ovirt.ovirt_vm:
name: myvm
cd_iso: centos7_x64.iso
boot_devices:
- cdrom
- name: Stop vm
ovirt.ovirt.ovirt_vm:
state: stopped
name: myvm
- name: Upgrade memory to already created VM
ovirt.ovirt.ovirt_vm:
name: myvm
memory: 4GiB
- name: Hot plug memory to already created and running VM (VM won't be restarted)
ovirt.ovirt.ovirt_vm:
name: myvm
memory: 4GiB
# Create/update a VM to run with two vNUMA nodes and pin them to physical NUMA nodes as follows:
# vnuma index 0-> numa index 0, vnuma index 1-> numa index 1
- name: Create a VM to run with two vNUMA nodes
ovirt.ovirt.ovirt_vm:
name: myvm
cluster: mycluster
numa_tune_mode: "interleave"
numa_nodes:
- index: 0
cores: [0]
memory: 20
numa_node_pins: [0]
- index: 1
cores: [1]
memory: 30
numa_node_pins: [1]
- name: Update an existing VM to run without previously created vNUMA nodes (i.e. remove all vNUMA nodes+NUMA pinning setting)
ovirt.ovirt.ovirt_vm:
name: myvm
cluster: mycluster
state: "present"
numa_tune_mode: "interleave"
numa_nodes:
- index: -1
# When change on the VM needs restart of the VM, use next_run state,
# The VM will be updated and rebooted if there are any changes.
# If present state would be used, VM won't be restarted.
- ovirt.ovirt.ovirt_vm:
state: next_run
name: myvm
boot_devices:
- network
- name: Import virtual machine from VMware
ovirt.ovirt.ovirt_vm:
state: stopped
cluster: mycluster
name: vmware_win10
timeout: 1800
poll_interval: 30
vmware:
url: vpx://[email protected]/Folder1/Cluster1/2.3.4.5?no_verify=1
name: windows10
storage_domain: mynfs
username: user
password: password
- name: Create vm from template and create all disks on specific storage domain
ovirt.ovirt.ovirt_vm:
name: vm_test
cluster: mycluster
template: mytemplate
storage_domain: mynfs
nics:
- name: nic1
- name: Remove VM, if VM is running it will be stopped
ovirt.ovirt.ovirt_vm:
state: absent
name: myvm
# Defining a specific quota for a VM:
# Since Ansible 2.5
- ovirt.ovirt.ovirt_quotas_info:
data_center: Default
name: myquota
register: ovirt_quotas
- ovirt.ovirt.ovirt_vm:
name: myvm
sso: False
boot_menu: True
bios_type: q35_ovmf
usb_support: True
serial_console: True
quota_id: "{{ ovirt_quotas[0]['id'] }}"
- name: Create a VM that has the console configured for both Spice and VNC
ovirt.ovirt.ovirt_vm:
name: myvm
template: mytemplate
cluster: mycluster
graphical_console:
protocol:
- spice
- vnc
# Execute remote viewer to VM
- block:
- name: Create a ticket for console for a running VM
ovirt.ovirt.ovirt_vm:
name: myvm
ticket: true
state: running
register: myvm
- name: Save ticket to file
ansible.builtin.copy:
content: "{{ myvm.vm.remote_vv_file }}"
dest: ~/vvfile.vv
- name: Run remote viewer with file
ansible.builtin.command: remote-viewer ~/vvfile.vv
# Default value of host_device state is present
- name: Attach host devices to virtual machine
ovirt.ovirt.ovirt_vm:
name: myvm
host: myhost
placement_policy: pinned
host_devices:
- name: pci_0000_00_06_0
- name: pci_0000_00_07_0
state: absent
- name: pci_0000_00_08_0
state: present
- name: Add placement policy with multiple hosts
ovirt.ovirt.ovirt_vm:
name: myvm
placement_policy: migratable
placement_policy_hosts:
- host1
- host2
- name: Export the VM as OVA
ovirt.ovirt.ovirt_vm:
name: myvm
state: exported
cluster: mycluster
export_ova:
host: myhost
filename: myvm.ova
directory: /tmp/
- name: Clone VM from snapshot
ovirt.ovirt.ovirt_vm:
snapshot_vm: myvm
snapshot_name: myvm_snap
name: myvm_clone
state: present
- name: Import external ova VM
ovirt.ovirt.ovirt_vm:
cluster: mycluster
name: myvm
host: myhost
timeout: 1800
poll_interval: 30
kvm:
name: myvm
url: ova:///path/myvm.ova
storage_domain: mystorage
- name: Cpu pinning of 0#12_1#13_2#14_3#15
ovirt.ovirt.ovirt_vm:
state: present
cluster: mycluster
name: myvm
cpu_pinning:
- cpu: 12
vcpu: 0
- cpu: 13
vcpu: 1
- cpu: 14
vcpu: 2
- cpu: 15
vcpu: 3
返回值
通用返回值记录在 此处,以下是此模块独有的字段
键 |
描述 |
---|---|
被管理的虚拟机的 ID 返回值:如果找到虚拟机,则成功时返回。 示例: |
|
所有虚拟机属性的字典。 可以在您的 oVirt/RHV 实例的以下 URL 上找到虚拟机属性:http://ovirt.github.io/ovirt-engine-api-model/master/#types/vm。 此外,当用户发送 ticket=true 时,此模块还将在 vm 字典中返回 remote_vv_file 参数,该参数包含用于打开虚拟机控制台的远程查看器兼容文件。 请注意,此文件包含敏感信息。 返回值:如果找到虚拟机,则成功时返回。 |