netapp.ontap.na_ontap_lun 模块 – NetApp ONTAP 管理 LUN

注意

此模块是 netapp.ontap 集合(版本 22.13.0)的一部分。

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

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

要在 playbook 中使用它,请指定:netapp.ontap.na_ontap_lun

netapp.ontap 2.6.0 中的新增功能

概要

  • 在 NetApp ONTAP 上创建、销毁、调整 LUN 的大小。

要求

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

  • Ansible 2.9 或更高版本 - 建议使用 2.12 或更高版本。

  • Python3 - 建议使用 3.9 或更高版本。

  • 当使用 ZAPI 时,建议使用 netapp-lib 2018.11.13 或更高版本(使用 'pip install netapp-lib' 安装),强烈建议使用 netapp-lib 2020.3.12,因为它为连接问题提供了更好的错误报告。

  • 一个物理或虚拟集群 Data ONTAP 系统,模块支持 Data ONTAP 9.1 及更高版本,REST 支持需要 ONTAP 9.6 或更高版本。

参数

参数

注释

cert_filepath

字符串

在 netapp.ontap 20.6.0 中添加

SSL 客户端证书文件 (.pem) 的路径。

不支持 python 2.6。

comment

字符串

在 netapp.ontap 21.2.0 中添加

LUN 的可选描述性注释。

feature_flags

字典

在 netapp.ontap 20.5.0 中添加

启用或禁用新功能。

这可用于启用实验性功能或禁用破坏向后兼容性的新功能。

支持的键和值如有更改,恕不另行通知。未知键将被忽略。

flexvol_name

字符串

LUN 应存在的 FlexVol 的名称。

如果 san_application_template 不存在,则为必需项。

如果存在 san_application_template,则不允许使用。

force_ontap_version

字符串

在 netapp.ontap 21.23.0 中添加

使用 REST 时覆盖集群 ONTAP 版本。

如果版本与目标集群不匹配,则行为未定义。

当由于权限问题而无法读取集群版本时,此功能作为一种解决方法提供。请参阅 https://github.com/ansible-collections/netapp.ontap/wiki/Known-issues

这应采用 9.10 或 9.10.1 的形式,每个元素都是一个整数。

use_rest 设置为 auto 时,这可能会强制基于版本和平台功能切换到 ZAPI。

在使用 ZAPI 时将被忽略。

force_remove

布尔值

如果为“true”,则覆盖阻止销毁在线且已映射的 LUN 的检查。

如果为“false”,则销毁在线且已映射的 LUN 将失败。

选项

  • false ←(默认)

  • true

force_remove_fenced

布尔值

如果为“true”,则覆盖阻止销毁被隔离的 LUN 的检查。

如果为“false”,则尝试销毁被隔离的 LUN 将失败。

如果未指定,则默认值为“false”。此字段在 Data ONTAP 8.2 及更高版本中可用。

选项

  • false

  • true

force_resize

布尔值

强制缩小大小。这是缩小 LUN 大小所必需的,以避免意外缩小 LUN 大小。

选项

  • false

  • true

from_name

字符串

在 netapp.ontap 20.12.0 中添加

要重命名的 LUN 的名称。

hostname

字符串 / 必需

ONTAP 实例的主机名或 IP 地址。

http_port

整数

使用此端口覆盖默认端口(80 或 443)

https

布尔值

启用和禁用 https。

当使用 REST 时将被忽略,因为仅支持 https。

当使用 SSL 证书身份验证时将被忽略,因为它需要 SSL。

选项

  • false ←(默认)

  • true

key_filepath

字符串

在 netapp.ontap 20.6.0 中添加

SSL 客户端密钥文件的路径。

name

字符串 / 必需

要管理的 LUN 的名称。

或当使用 san_application_template 时,LUN 组名称(卷名称)。

ontapi

整数

要使用的 ontap api 版本

os_type

别名:ostype

字符串

LUN 的操作系统类型。

password

别名:pass

字符串

指定用户的密码。

qos_adaptive_policy_group

字符串

在 netapp.ontap 21.2.0 中添加

要在 LUN 上设置的自适应 QoS 策略组。

定义可衡量的服务级别目标 (SLO) 和服务级别协议 (SLA),这些目标和协议会根据 LUN 的分配空间或已用空间进行调整。

需要 ONTAP 9.4 或更高版本。

使用 REST 时,qos_policy_group 和 qos_adaptive_policy_group 被视为 QOS 策略。

qos_policy_group

字符串

在 netapp.ontap 20.12.0 中添加

要在 LUN 上设置的 QoS 策略组。

使用 REST 时,qos_policy_group 和 qos_adaptive_policy_group 被视为 QOS 策略。

qtree_name

字符串

在 netapp.ontap 22.8.0 中添加

指定包含新 LUN 的 Qtree 的名称。

如果存在 san_application_template,则不允许使用。

仅 REST 支持。

san_application_template

字典

在 netapp.ontap 20.12.0 中添加

使用应用程序/应用程序 REST API 创建 LUN 时的其他选项。

默认情况下,该模块使用 ZAPI,如果存在 san_application_template,则切换到 REST。

创建一个或多个 LUN(以及所需的关联卷)。

支持 LUN 级别的操作,它们需要知道 LUN 的短名称。

这需要 ONTAP 9.8 或更高版本。

该模块部分支持 ONTAP 9.7 用于创建和删除操作,但不适用于修改(API 限制)。

exclude_aggregates

列表 / elements=string

在 netapp.ontap 21.7.0 中添加

创建卷时要排除的聚合名称列表。

需要 ONTAP 9.9.1 GA 或更高版本。

igroup_name

字符串

发起程序组的名称,将通过该发起程序组访问此应用程序的内容。

lun_count

整数

应用程序组件中的 LUN 数量(1 到 32 个)。

name

字符串 / 必需

SAN 应用程序的名称。

protection_type

字典

支持 LUN 的卷的快照策略。

local_policy

字符串

该卷的快照复制策略。

scope

字符串

在 netapp.ontap 21.2.0 中添加

顶级名称标识单个 LUN 还是 LUN 组(应用程序)。

默认情况下,模块会尝试做出正确的选择,但可能会报告额外的警告。

需要将 scope 设置为“application”才能将现有卷转换为智能容器。

当使用“lun”或“application”且无法完成所需操作时,模块会报告错误。

当使用默认的“auto”且在所需操作方面存在歧义时,模块会发出警告。

选项

  • "application"

  • "auto" ← (默认)

  • "lun"

storage_service

字符串

此卷的性能服务级别 (PSL)

选项

  • "value"

  • "performance"

  • "extreme"

tiering

字典

云分层策略。

control

字符串

容器的存储分层放置规则。

选项

  • "required"

  • "best_effort"

  • "disallowed"

object_stores

列表 / elements=string

用于分层的对象存储名称列表。

policy

字符串

云分层策略。

选项

  • "all"

  • "auto"

  • "none"

  • "snapshot-only"

total_size

整数

在 netapp.ontap 21.1.0 中添加

应用程序组件的总大小,以 total_size_unit 分割在成员 LUN 中。

当存在 lun_count 时推荐使用。

当存在 lun_count 且大于 1 时是必需的。

注意 - 如果 lun_count 等于 1,且 total_size 不存在,则使用 size 来保持向后兼容性。

total_size_unit

字符串

在 netapp.ontap 21.1.0 中添加

用于解释 total_size 参数的单位。

如果不存在,则默认为 size_unit。

选项

  • "bytes"

  • "b"

  • "kb"

  • "mb"

  • "gb"

  • "tb"

  • "pb"

  • "eb"

  • "zb"

  • "yb"

use_san_application

布尔值

是否使用应用程序/应用程序 REST/API 来创建 LUN。

如果存在任何其他子选项,则默认为 true。

选项

  • false

  • true ← (默认)

size

整数

LUN 的大小,单位为 size_unit

如果未使用应用程序模板创建单个 LUN,则为必需项。

size_unit

字符串

用于解释 size 参数的单位。

选项

  • "bytes"

  • "b"

  • "kb"

  • "mb"

  • "gb" ← (默认)

  • "tb"

  • "pb"

  • "eb"

  • "zb"

  • "yb"

space_allocation

布尔值

在 netapp.ontap 2.7.0 中添加

这支持 SCSI 精简配置功能。如果主机和文件系统不支持此功能,请不要启用它。

选项

  • false

  • true

space_reserve

布尔值

可以将其设置为“false”,这将创建一个不保留任何空间的 LUN。

选项

  • false

  • true ← (默认)

state

字符串

指定的 LUN 是否应该存在。

选项

  • "present" ← (默认)

  • "absent"

use_exact_size

布尔值

在 netapp.ontap 20.11.0 中添加

可以将其设置为“false”,这将舍入 LUN >= 450g。

选项

  • false

  • true ← (默认)

use_rest

字符串

是否使用 REST 或 ZAPI。

always – 如果模块支持 REST,将始终使用 REST API。如果模块不支持 REST,则会发出警告。如果 REST 中不支持模块选项,则会发出错误。

never – 如果模块支持 ZAPI,将始终使用 ZAPI。如果 ZAPI 中不支持 REST 选项,则可能会发出错误。

auto – 如果模块支持 REST 且支持模块选项,将尝试使用 REST API。否则将恢复为 ZAPI。

默认值: "auto"

username

别名:user

字符串

这可以是集群范围或 SVM 范围的帐户,具体取决于是否需要集群级别或 SVM 级别的 API。

有关更多信息,请阅读文档 https://mysupport.netapp.com/NOW/download/software/nmsdk/9.4/

支持两种身份验证方法

  1. 使用用户名和密码的基本身份验证,

  2. 使用 SSL 客户端证书文件以及可选的私钥文件的 SSL 证书身份验证。

要使用证书,必须在 ONTAP 集群中安装证书,并且必须启用证书身份验证。

validate_certs

布尔值

如果设置为 no,则不会验证 SSL 证书。

只有在个人控制的站点上使用自签名证书时,才应将其设置为 False

选项

  • false

  • true ← (默认)

vserver

字符串 / 必需

要使用的 vserver 的名称。

备注

注意

  • 以 na_ontap 为前缀的模块旨在支持 ONTAP 存储平台。

  • 默认情况下启用并推荐使用 https。要在集群上启用 http,您必须运行以下命令“set -privilege advanced;” “system services web modify -http-enabled true;”

示例

- name: Create LUN
  netapp.ontap.na_ontap_lun:
    state: present
    name: ansibleLUN
    flexvol_name: ansibleVolume
    vserver: ansibleVServer
    size: 5
    size_unit: mb
    os_type: linux
    space_reserve: true
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

- name: Resize LUN
  netapp.ontap.na_ontap_lun:
    state: present
    name: ansibleLUN
    force_resize: true
    flexvol_name: ansibleVolume
    vserver: ansibleVServer
    size: 5
    size_unit: gb
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

- name: Create LUNs using SAN application
  tags: create
  netapp.ontap.na_ontap_lun:
    state: present
    name: ansibleLUN
    size: 15
    size_unit: mb
    os_type: linux
    space_reserve: false
    san_application_template:
      name: san-ansibleLUN
      igroup_name: testme_igroup
      lun_count: 3
      protection_type:
      local_policy: default
      exclude_aggregates: aggr0
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

- name: Convert existing volume to SAN application
  tags: create
  netapp.ontap.na_ontap_lun:
    state: present
    name: someVolume
    size: 22
    size_unit: mb
    os_type: linux
    space_reserve: false
    san_application_template:
      name: san-ansibleLUN
      igroup_name: testme_igroup
      lun_count: 3
      protection_type:
      local_policy: default
      scope: application
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

作者

  • NetApp Ansible 团队 (@carchi8py)