ovirt.ovirt.ovirt_template 模块 – 用于管理 oVirt/RHV 中的虚拟机模板的模块
注意
此模块是 ovirt.ovirt 集合(版本 3.2.0)的一部分。
如果您正在使用 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install ovirt.ovirt
。您需要其他要求才能使用此模块,有关详细信息,请参阅要求。
要在 Playbook 中使用它,请指定:ovirt.ovirt.ovirt_template
。
ovirt.ovirt 1.0.0 中的新增功能
概要
用于管理 oVirt/RHV 中的虚拟机模板的模块。
要求
在执行此模块的主机上需要以下要求。
python >= 2.7
ovirt-engine-sdk-python >= 4.4.0
参数
参数 |
注释 |
---|---|
布尔值指示当 选择
|
|
包含创建与 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 起支持。 选择
|
|
True 启用用于选择启动设备的菜单,False 禁用它。默认情况下由 oVirt/RHV 引擎选择。 选择
|
|
用于从存储域导入模板的名称。 如果未定义,将使用 |
|
如果为 True,则会将 VM 的权限(仅直接权限,而不是继承的权限)复制到创建的模板。 此参数仅在 选择
|
|
包含使用云初始化进行类 Unix 虚拟机初始化的值的字典。 |
|
使用此 SSH 密钥登录虚拟机。 |
|
云初始化脚本,将在部署时在虚拟机上执行。 此脚本将附加到任何其他选项生成的云初始化脚本的末尾。 有关更多信息,请参阅云初始化用户数据文档。 |
|
要在虚拟机上配置的 DNS 搜索域。 |
|
要在虚拟机上配置的 DNS 服务器,最多两个,以空格分隔。 |
|
要在部署时设置为虚拟机的主机名。 |
|
设置虚拟机网络接口的启动协议。 选择
|
|
如果启动协议是静态的,则将此网关设置为虚拟机的网络接口。 |
|
如果启动协议是静态的,则将此 IP 地址设置为虚拟机的网络接口。 |
|
设置虚拟机网络接口的名称。 |
|
如果启动协议是静态的,则将此子网掩码设置为虚拟机的网络接口。 |
|
如果为 True,则会在虚拟机上重新生成 SSH 密钥。 选择
|
|
要为 |
|
要在部署时设置为虚拟机的时区。 |
|
用于在部署时为虚拟机设置密码的用户名。 |
|
表示云初始化将要设置的网络接口的字典列表。 当用户需要通过云初始化设置多个网络接口时,可以使用此选项。 如果一个网络接口就足够,用户应该使用 |
|
设置虚拟机网络接口的引导协议。 可以是 |
|
如果启动协议是静态的,则将此网关设置为虚拟机的网络接口。 |
|
如果启动协议是静态的,则将此 IP 地址设置为虚拟机的网络接口。 |
|
设置虚拟机网络接口的名称。 |
|
如果启动协议是静态的,则将此子网掩码设置为虚拟机的网络接口。 |
|
应在其中创建/导入模板的集群的名称。 |
|
当 |
|
目标集群的名称。 |
|
源集群的名称。 |
|
要设置到模板的 CPU 配置文件。 |
|
模板的描述。 |
|
当 |
|
目标 aaa 域的名称。 |
|
源 aaa 域的名称。 |
|
当 选择
|
|
当 |
|
如果为 *True*,则模块将从 API 获取其他数据。 它将获取虚拟机磁盘、快照等的 ID。用户可以通过指定 选择
|
|
要注册的模板的 ID。 |
|
当 |
|
当 |
|
虚拟机使用的 IO 线程数。0 表示禁用 IO 线程。 |
|
用于连接到 kvm 并将模板导入到 oVirt 的值的字典。 |
|
指示是否应重新生成导入模板的标识符。 |
|
将从中导入模板的主机名。 |
|
指定转换磁盘的目标存储域。这是必需的参数。 |
|
要传递给 virt-v2v 工具进行转换的 URL。 例如 qemu:///system。这是必需的参数。 |
|
模板的内存量。前缀使用 IEC 60027-2 标准(例如 1GiB,1024MiB)。 |
|
模板的最小保证内存量。前缀使用 IEC 60027-2 标准(例如 1GiB,1024MiB)。
|
|
模板内存的上限,可在此上限内执行内存热插拔。前缀使用 IEC 60027-2 标准(例如 1GiB,1024MiB)。 |
|
要管理的模板的名称。 |
|
指定应从 API 获取的属性列表。 此参数仅在 |
|
应附加到虚拟机的网卡列表。网卡由以下字典描述。 |
|
网络接口的类型。 选择
|
|
网络接口的自定义 MAC 地址,默认情况下从 MAC 池中获取。 |
|
网卡的名称。 |
|
应附加网卡的配置文件名称。 |
|
模块等待多长时间(秒),直到发送另一个实体状态的轮询请求。 默认值: |
|
当 |
|
目标角色的名称。 |
|
源角色的名称。 |
|
“封印”是一种从文件系统中删除所有特定于计算机的配置的操作:这包括 SSH 密钥、UDEV 规则、MAC 地址、系统 ID、主机名等。如果为 *true*,则从该模板创建的后续虚拟机将避免配置继承。 此参数仅在 选择
|
|
如果为 *true*,则使用智能卡身份验证。 选择
|
|
如果为 *true*,则将声卡添加到虚拟机。 选择
|
|
True 通过 Guest Agent 启用单点登录,False 禁用它。默认情况下由 oVirt/RHV 引擎选择。 选择
|
|
模板应为 present/absent/exported/imported/registered。当 选择
|
|
当 |
|
用于使用 sysprep 初始化 Windows 虚拟机的字典值。 |
|
Active Directory 组织单位,用于用户登录。 |
|
自定义 Sysprep 定义,格式为完整的无人值守安装应答文件。 |
|
要设置到 Windows 虚拟机的域。 |
|
要在部署时设置为虚拟机的主机名。 |
|
Windows 虚拟机的输入区域设置。 |
|
要设置到 Windows 虚拟机的组织名称。 |
|
要为 Windows 虚拟机中的用户名设置的密码。 |
|
Windows 虚拟机的系统区域设置。 |
|
要设置到 Windows 虚拟机的时区。 |
|
Windows 虚拟机的 UI 语言。 |
|
用于为 Windows 虚拟机设置密码的用户名。 |
|
要设置到 Windows 虚拟机的许可证密钥。 |
|
当 |
|
模块应等待实例进入所需状态的时间(秒)。 默认值: |
|
设置来宾硬件时钟的时区偏移量。 例如 |
|
True 启用 USB 支持,False 禁用它。默认情况下由 oVirt/RHV 引擎选择。 选择
|
|
|
|
用于创建模板的虚拟机的名称。 |
|
当 |
|
源网络的网络名称。 |
|
与源网络相关的配置文件名称。 |
|
要在引擎中映射到的目标配置文件 ID 的 ID。 |
|
如果模块应等待实体进入所需状态,则为 选择
|
注释
注意
为了使用此模块,您必须安装 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:
# Create template from vm
- ovirt.ovirt.ovirt_template:
cluster: Default
name: mytemplate
vm: rhel7
cpu_profile: Default
description: Test
# Import template
- ovirt.ovirt.ovirt_template:
state: imported
name: mytemplate
export_domain: myexport
storage_domain: mystorage
cluster: mycluster
# Remove template
- ovirt.ovirt.ovirt_template:
state: absent
name: mytemplate
# Change Template Name
- ovirt.ovirt.ovirt_template:
id: 00000000-0000-0000-0000-000000000000
name: "new_template_name"
# Register template
- ovirt.ovirt.ovirt_template:
state: registered
storage_domain: mystorage
cluster: mycluster
name: mytemplate
# Register template using id
- ovirt.ovirt.ovirt_template:
state: registered
storage_domain: mystorage
cluster: mycluster
id: 1111-1111-1111-1111
# Register template, allowing partial import
- ovirt.ovirt.ovirt_template:
state: registered
storage_domain: mystorage
allow_partial_import: "True"
cluster: mycluster
id: 1111-1111-1111-1111
# Register template with vnic profile mappings
- ovirt.ovirt.ovirt_template:
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
# Register template with mapping
- ovirt.ovirt.ovirt_template:
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
cluster_mappings:
- source_name: cluster_A
dest_name: cluster_B
# Import image from Glance s a template
- ovirt.ovirt.ovirt_template:
state: imported
name: mytemplate
image_disk: "centos7"
template_image_disk_name: centos7_from_glance
image_provider: "glance_domain"
storage_domain: mystorage
cluster: mycluster
# Edit template subversion
- ovirt.ovirt.ovirt_template:
cluster: mycluster
name: mytemplate
vm: rhel7
version:
number: 2
name: subversion
# Create new template subversion
- ovirt.ovirt.ovirt_template:
cluster: mycluster
name: mytemplate
vm: rhel7
version:
name: subversion
- name: Template with cloud init
ovirt.ovirt.ovirt_template:
name: mytemplate
cluster: Default
vm: rhel8
memory: 1GiB
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: Template with cloud init, with multiple network interfaces
ovirt.ovirt.ovirt_template:
name: mytemplate
cluster: mycluster
vm: rhel8
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
- name: Template with timezone and nic
ovirt.ovirt.ovirt_template:
cluster: MyCluster
name: mytemplate
vm: rhel8
timezone: America/Godthab
memory_max: 2Gib
nics:
- name: nic1
- name: Template with sysprep
ovirt.ovirt.ovirt_template:
name: windows2012R2_AD
cluster: Default
vm: windows2012
memory: 3GiB
sysprep:
host_name: windowsad.example.com
user_name: Administrator
root_password: SuperPassword123
- name: Import external ova template
ovirt.ovirt.ovirt_template:
cluster: mycluster
name: mytemplate
state: present
timeout: 1800
poll_interval: 30
kvm:
host: myhost
url: ova:///tmp/test.ova
storage_domain: mystorage
返回值
常见的返回值已在这里记录,以下是此模块独有的字段
键 |
描述 |
---|---|
被管理的模板的 ID 返回: 如果找到模板,则成功返回。 示例: |
|
所有模板属性的字典。模板属性可以在您的 oVirt/RHV 实例的以下 URL 找到:http://ovirt.github.io/ovirt-engine-api-model/master/#types/template。 返回: 如果找到模板,则成功返回。 |