ovirt.ovirt.ovirt_disk 模块 – 用于管理 oVirt/RHV 中的虚拟机和浮动磁盘的模块

注意

此模块是 ovirt.ovirt 集合(版本 3.2.0)的一部分。

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

要安装它,请使用:ansible-galaxy collection install ovirt.ovirt。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:ovirt.ovirt.ovirt_disk

ovirt.ovirt 1.0.0 中的新增功能

概要

  • 用于管理 oVirt/RHV 中的虚拟机和浮动磁盘的模块。

  • 警告:如果您是从 ansible galaxy 安装的集合,则需要安装 'qemu-img' 包。

要求

执行此模块的主机需要满足以下要求。

  • python >= 2.7

  • ovirt-engine-sdk-python >= 4.4.0

参数

参数

注释

activate

布尔值

如果应激活磁盘,则为True

在创建虚拟机磁盘时,它设置为True

选项

  • false

  • true

auth

字典 / 必需

包含创建与 oVirt 的 HTTP/HTTPS 连接所需值的字典

ca_file

字符串

包含受信任的 CA 证书的 PEM 文件。

服务器提供的证书将使用这些 CA 证书进行验证。

如果未设置 ca_file 参数,则使用系统范围的 CA 证书存储。

默认值由 OVIRT_CAFILE 环境变量设置。

compress

布尔值

指示是否对连接使用压缩的标志。

选项

  • false

  • true ←(默认)

headers

字典

要添加到每个 API 调用的 HTTP 标头的字典。

hostname

字符串

包含服务器主机名的字符串,通常类似于 `server.example.com`。

默认值由 OVIRT_HOSTNAME 环境变量设置。

需要 urlhostname

insecure

布尔值

一个布尔标志,指示是否应检查服务器 TLS 证书和主机名。

选项

  • false ←(默认)

  • true

kerberos

布尔值

一个布尔标志,指示是否应使用 Kerberos 身份验证而不是默认的基本身份验证。

选项

  • false

  • true

password

字符串

用户的密码。

默认值由 OVIRT_PASSWORD 环境变量设置。

timeout

整数

等待响应的秒数。

token

字符串

要使用的令牌,而不是使用用户名/密码登录。

默认值由 OVIRT_TOKEN 环境变量设置。

url

字符串

包含服务器 API URL 的字符串,通常类似于 `https://server.example.com/ovirt-engine/api`。

默认值由 OVIRT_URL 环境变量设置。

需要 urlhostname

username

字符串

用户的名称,类似于 admin@internal

默认值由 OVIRT_USERNAME 环境变量设置。

backup

字符串

在 ovirt.ovirt 1.1.0 中添加

磁盘支持的备份行为。

选项

  • "incremental"

bootable

布尔值

如果磁盘应该是可引导的,则为True。默认情况下,创建磁盘时,它不是可引导的。

选项

  • false

  • true

content_type

字符串

指定磁盘是数据磁盘还是 ISO 映像,或者是托管引擎磁盘类型之一

托管引擎磁盘内容类型可用于 Engine 4.3+ 和 Ansible 2.8

选项

  • "data" ←(默认)

  • "iso"

  • "hosted_engine"

  • "hosted_engine_sanlock"

  • "hosted_engine_metadata"

  • "hosted_engine_configuration"

description

字符串

要管理的磁盘映像的描述。

download_image_path

字符串

应下载磁盘的文件系统上的路径。

请注意,您的系统信任存储中必须具有有效的 oVirt/RHV 引擎 CA,或者您必须在 ca_file 参数中提供它。

请注意,当文件已存在时,不会下载磁盘,但是当使用 force I(true)时,您可以强制下载磁盘。

fetch_nested

布尔值

如果为 True,则模块将从 API 获取其他数据。

它将获取虚拟机磁盘、快照等的 ID。用户可以通过指定 nested_attributes 来配置以获取嵌套实体的其他属性。

选项

  • false ←(默认)

  • true

force

布尔值

请查看 image_path 文档,了解此参数的正确用法。

选项

  • false ←(默认)

  • true

format

字符串

指定磁盘的格式。

请注意,此选项不是幂等的,因为它目前无法通过 API 更改磁盘格式。

选项

  • "raw"

  • "cow" ←(默认)

host

字符串

当指定了虚拟机管理程序名称时,新创建的磁盘或现有磁盘将刷新其底层存储信息(磁盘大小、序列号、产品 ID、供应商 ID 等)。指定的宿主机将用于收集存储相关信息。此选项仅对直通磁盘有效。此选项至少需要指定 logical_unit.id。

id

字符串

要管理的磁盘的 ID。需要 idname/alias

image_provider

字符串

state 为 _exported_ 时,磁盘将被导出到给定的 Glance 镜像提供程序。

state 为 _imported_ 时,磁盘将从给定的 Glance 镜像提供程序导入。

**重要**

没有可靠的方法来实现幂等性,因此每次指定此参数时都会导出磁盘,请相应地处理您的 playbook,避免一直导出磁盘。此选项仅对模板磁盘有效。

interface

字符串

存储接口的驱动程序。

创建新磁盘时,此参数是必需的。

选项

  • "virtio"

  • "ide"

  • "sata"

  • "virtio_scsi"

logical_unit

字典

描述要直接附加到虚拟机的 LUN 的字典

address

字符串

存储服务器的地址。由 iSCSI 使用。

lun_id

字符串

LUN ID。

password

字符串

用于访问存储服务器的用户的 CHAP 密码。由 iSCSI 使用。

port

字符串

存储服务器的端口。由 iSCSI 使用。

storage_type

字符串

存储类型,可以是 _fcp_ 或 _iscsi_。

target

字符串

iSCSI 目标。

username

字符串

用于访问存储服务器的 CHAP 用户名。由 iSCSI 使用。

max_workers

整数

在 ovirt.ovirt 1.7.0 中添加

在镜像的上传/下载中应使用的工作线程数。

使用多个工作线程可以加快该过程。

name

别名:alias

字符串

要管理的磁盘的名称。需要 idname/alias

nested_attributes

list / elements=string

指定应从 API 获取的属性列表。

此参数仅在 fetch_nested 为 _true_ 时应用。

openstack_volume_type

字符串

OpenStack 卷类型的名称。这在与 Cinder 一起工作时有效。

pass_discard

布尔值

在 ovirt.ovirt 1.2.0 中添加

定义虚拟机是否将丢弃命令传递到存储。

选项

  • false

  • true

poll_interval

整数

模块等待多少秒后才发送另一个实体状态轮询请求。

默认值: 3

profile

字符串

要附加到磁盘的磁盘配置文件名称。默认情况下,配置文件由 oVirt/RHV 引擎选择。

propagate_errors

布尔值

在 ovirt.ovirt 1.2.0 中添加

指示磁盘错误是否应导致虚拟机暂停,或者磁盘错误是否应

改为传播到客户操作系统。

选项

  • false

  • true

quota_id

字符串

用于磁盘的磁盘配额 ID。默认情况下,配额由 oVirt/RHV 引擎选择。

read_only

布尔值

如果磁盘应为只读,则为 _True_。默认情况下,创建磁盘时不是只读的。

选项

  • false

  • true

scsi_passthrough

字符串

在 ovirt.ovirt 1.2.0 中添加

指示是否启用 SCSI 直通及其策略。

将值设置为 `filtered`/`unfiltered` 将为具有非特权/特权 SCSI I/O 的 LUN 磁盘启用 SCSI 直通。

要禁用 SCSI 直通,该值应设置为 `disabled`

选项

  • "disabled"

  • "filtered"

  • "unfiltered"

shareable

布尔值

如果磁盘应为可共享的,则为 _True_。默认情况下,创建磁盘时不是可共享的。

选项

  • false

  • true

size

字符串

磁盘的大小。应使用 IEC 标准单位指定大小。例如 10GiB、1024MiB 等。

大小只能增加,不能减少。

如果磁盘由 name 引用并且附加到虚拟机,请务必指定 vm_name/vm_id 以防止扩展未附加到虚拟机的另一个磁盘。

sparse

布尔值

如果磁盘应为稀疏的(也称为_精简配置_),则为 _True_。如果省略该参数,则 cow 磁盘将创建为稀疏的,而 raw 磁盘将创建为_预分配_的

请注意,此选项不是幂等的,因为目前无法通过 API 更改磁盘的稀疏性。

选项

  • false

  • true

sparsify

布尔值

如果应稀疏化磁盘,则为 _True_。

稀疏化会释放磁盘镜像中其文件系统未使用的空间。因此,镜像将占用存储上的较少空间。

请注意,此参数不是幂等的,因为无法检查磁盘是否应稀疏化。

选项

  • false

  • true

state

字符串

虚拟机磁盘应为存在/不存在/已附加/已分离/已导出/已导入。

选项

  • "present" ← (默认)

  • "absent"

  • "attached"

  • "detached"

  • "exported"

  • "imported"

storage_domain

字符串

应在其中创建磁盘的存储域名称。

storage_domains

list / elements=string

应在其中复制磁盘的存储域名称。

**重要**

没有可靠的方法来实现幂等性,因此每次指定此参数时都会复制磁盘,请相应地处理您的 playbook,避免一直复制磁盘。这仅对虚拟机和浮动磁盘有效,模板磁盘按预期工作。

timeout

整数

模块应等待实例进入所需状态的时间(以秒为单位)。

默认值: 180

upload_image_path

别名:image_path

字符串

应上传的磁盘镜像的路径。

请注意,如果未指定 size,则磁盘的大小将由指定镜像的大小确定。

请注意,目前我们仅支持 qcow 磁盘的 0.10 兼容性版本。

请注意,您的系统信任存储中必须具有有效的 oVirt/RHV 引擎 CA,或者您必须在 ca_file 参数中提供它。

请注意,没有可靠的方法来实现幂等性,因此,如果您想上传磁盘,即使存在具有 idname 的磁盘,请使用 force _true_。如果您使用 force _false_(默认),则不会上传磁盘镜像。

请注意,为了上传 iso,format 应为“raw”。

uses_scsi_reservation

布尔值

在 ovirt.ovirt 1.2.0 中添加

定义是否为此磁盘启用 SCSI 预留。

选项

  • false

  • true

vm_id

字符串

要管理的虚拟机的 ID。如果 state 为 _attached_ 或 _detached_,则需要 vm_idvm_name

vm_name

字符串

要管理的虚拟机的名称。如果 state 为 _attached_ 或 _detached_,则需要 vm_idvm_name

wait

布尔值

如果模块应等待实体进入所需状态,则为 yes

选项

  • false

  • true ←(默认)

wipe_after_delete

布尔值

如果启用了磁盘的删除后擦除,则首先擦除磁盘。

选项

  • false

  • true

注释

注意

  • 为了使用此模块,您必须安装 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 and attach new disk to VM
- ovirt.ovirt.ovirt_disk:
    name: myvm_disk
    vm_name: rhel7
    size: 10GiB
    format: cow
    interface: virtio
    storage_domain: data

# Attach logical unit to VM rhel7
- ovirt.ovirt.ovirt_disk:
    vm_name: rhel7
    logical_unit:
      target: iqn.2016-08-09.brq.str-01:omachace
      id: 1IET_000d0001
      address: 10.34.63.204
    interface: virtio

# Detach disk from VM
- ovirt.ovirt.ovirt_disk:
    state: detached
    name: myvm_disk
    vm_name: rhel7
    size: 10GiB
    format: cow
    interface: virtio

# Change Disk Name
- ovirt.ovirt.ovirt_disk:
    id: 00000000-0000-0000-0000-000000000000
    storage_domain: data
    name: "new_disk_name"
    vm_name: rhel7

# Upload local image to disk and attach it to vm:
# Since Ansible 2.3
- ovirt.ovirt.ovirt_disk:
    name: mydisk
    vm_name: myvm
    interface: virtio
    size: 10GiB
    format: cow
    image_path: /path/to/mydisk.qcow2
    storage_domain: data

# Download disk to local file system:
# Since Ansible 2.3
- ovirt.ovirt.ovirt_disk:
    id: 7de90f31-222c-436c-a1ca-7e655bd5b60c
    download_image_path: /home/user/mydisk.qcow2

# Export disk as image to Glance domain
# Since Ansible 2.4
- ovirt.ovirt.ovirt_disk:
    id: 7de90f31-222c-436c-a1ca-7e655bd5b60c
    image_provider: myglance
    state: exported

# Defining a specific quota while creating a disk image:
# Since Ansible 2.5
- ovirt.ovirt.ovirt_quotas_info:
    data_center: Default
    name: myquota
  register: quota
- ovirt.ovirt.ovirt_disk:
    name: mydisk
    size: 10GiB
    storage_domain: data
    description: somedescriptionhere
    quota_id: "{{ quota.ovirt_quotas[0]['id'] }}"

# Upload an ISO image
# Since Ansible 2.8
- ovirt.ovirt.ovirt_disk:
    name: myiso
    upload_image_path: /path/to/iso/image
    storage_domain: data
    size: 4 GiB
    wait: true
    bootable: true
    format: raw
    content_type: iso

# Add fiber chanel disk
- name: Create disk
  ovirt.ovirt.ovirt_disk:
    name: fcp_disk
    host: my_host
    logical_unit:
        id: 3600a09803830447a4f244c4657597777
        storage_type: fcp

返回值

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

描述

disk

字典

所有磁盘属性的字典。磁盘属性可以在您的 oVirt/RHV 实例上的以下 URL 中找到:http://ovirt.github.io/ovirt-engine-api-model/master/#types/disk

返回值: 如果找到磁盘并且未传递 vm_idvm_name,则成功返回。

disk_attachment

字典

所有磁盘附加属性的字典。磁盘附加属性可以在您的 oVirt/RHV 实例上的以下 URL 中找到:http://ovirt.github.io/ovirt-engine-api-model/master/#types/disk_attachment

返回值: 如果找到磁盘,并且传递了 vm_idvm_name,并且找到了虚拟机,则成功返回。

id

字符串

托管磁盘的 ID

返回值: 如果找到磁盘,则成功返回。

示例: "7de90f31-222c-436c-a1ca-7e655bd5b60c"

作者

  • Ondra Machacek (@machacekondra)

  • Martin Necas (@mnecas)