netapp.ontap.na_ontap_interface 模块 – NetApp ONTAP LIF 配置

注意

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

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

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

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

netapp.ontap 2.6.0 中的新增功能

概要

  • 创建/删除和修改 LIF。

要求

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

  • 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 或更高版本。

参数

参数

注释

address

字符串

指定 LIF 的 IP 地址。

ZAPI - 当 state=present 且 is_ipv4_link_local 为 false 且未设置 subnet_name 时,需要此参数。

REST - 当 state=presentinterface_type 为 IP 时,需要此参数。

admin_status

字符串

指定 LIF 的管理状态。

选项

  • "up"

  • "down"

broadcast_domain

字符串

在 netapp.ontap 21.21.0 中添加

可以使用广播域名来指定 REST 中 IP 接口的位置,作为节点或端口的替代方法。

仅在创建 IP 接口以选择节点时使用,如果接口已存在,则忽略此参数。

如果未找到广播域,请确保检查 ipspace 值。

home_port 和 broadcast_domain 是互斥的。 home_node 可能存在也可能不存在。

不支持 FC 接口。

使用 ZAPI 时忽略。

cert_filepath

字符串

在 netapp.ontap 20.6.0 中添加

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

不支持 Python 2.6。

current_node

字符串

指定 LIF 的当前节点。

默认情况下,这是 home_node

current_port

字符串

指定 LIF 的当前端口。

data_protocol

字符串

配置 FC 接口的数据协议。

使用 ZAPI 或 IP 接口时忽略。

需要创建 FC 类型接口。

选项

  • "fcp"

  • "fc_nvme"

dns_domain_name

字符串

在 netapp.ontap 2.9.0 中添加

指定此 LIF 的 DNS 区域的唯一完全限定域名。

REST 中从 ONTAP 9.9.0 或更高版本支持。

不支持 FC 接口。

fail_if_subnet_conflicts

布尔值

在 netapp.ontap 22.2.0 中添加

如果指定的 IP 地址落在命名子网的地址范围内,则创建或更新 IP 接口会失败。

将此值设置为 false 以使用指定的 IP 地址并将拥有该地址的子网分配给接口。

此选项仅支持 REST,并且需要 ONTAP 9.11.1 或更高版本。

选项

  • false

  • true

failover_group

字符串

在 netapp.ontap 20.1.0 中添加

指定 LIF 的故障转移组。

不支持 REST。

failover_policy

字符串

指定 LIF 的故障转移策略。

使用 REST 时,这些值映射到 'home_port_only'、'default'、'home_node_only'、'sfo_partners_only'、'broadcast_domain_only'。

选项

  • "disabled"

  • "system-defined"

  • "local-only"

  • "sfo-partner-only"

  • "broadcast-domain-wide"

failover_scope

字符串

在 netapp.ontap 21.13.0 中添加

指定 LIF 的故障转移范围。

仅限 REST,且仅适用于 IP 接口。不支持 FC 接口。

选项

  • "home_port_only"

  • "default"

  • "home_node_only"

  • "sfo_partners_only"

  • "broadcast_domain_only"

feature_flags

字典

在 netapp.ontap 20.5.0 中添加

启用或禁用新功能。

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

支持的键和值可能会在不另行通知的情况下更改。未知的键将被忽略。

firewall_policy

字符串

指定 LIF 的防火墙策略。

此选项在 REST 中已弃用。

使用 REST 时,模块会尝试派生 service_policy 并且可能会出错。

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_subnet_association

布尔值

在 netapp.ontap 2.9.0 中添加

将其设置为 true 以从指定的子网获取地址,并将该子网分配给 LIF。

REST 不支持。

选项

  • false

  • true

from_name

字符串

在 netapp.ontap 21.11.0 中添加。

要重命名的接口名称。

home_node

字符串

指定 LIF 的主节点。

默认情况下,集群中的第一个节点被视为主节点。

home_port

字符串

指定 LIF 的主端口。

使用 REST 时,需要 ONTAP 9.8 或更高版本,且为 FC 接口。

使用 REST 时,创建 IP 接口至少需要 home_port、home_node 或 broadcast_domain 三者之一。

使用 REST 时,创建 FC 接口需要 home_port 或 current_port 两者之一。

使用 ZAPI 时,创建 IP 和 FC 接口都需要 home_port。

home_port 和 broadcast_domain 是互斥的(REST 和 IP 接口)。

hostname

字符串 / 必填

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

http_port

整数

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

https

布尔值

启用和禁用 https。

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

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

选项

  • false ← (默认)

  • true

ignore_zapi_options

列表 / 元素=字符串

在 netapp.ontap 21.13.0 中添加

忽略不相关的、不支持的选项。

使用 ZAPI 时忽略。

选项

  • "failover_group"

  • "force_subnet_association" ← (默认)

  • "listen_for_dns_query"

默认值: ["force_subnet_association"]

interface_name

字符串 / 必填

指定逻辑接口 (LIF) 名称。

interface_type

字符串

在 netapp.ontap 21.13.0 中添加

接口类型。

如果存在 address 或 netmask,则假定为 IP。

IP 接口包括集群、集群间、管理和 NFS、CIFS、iSCSI 接口。

FC 接口包括 FCP 和 NVME-FC 接口。

使用 ZAPI 时忽略。

REST 需要此项,但可以从已弃用的选项(如 roleprotocolsfirewall_policy)推导得出。

选项

  • "fc"

  • "ip"

ipspace

字符串

在 netapp.ontap 21.13.0 中添加

使用 REST 时,对于集群范围的接口,需要 IPspace 名称。 对于 SVM 范围,它是可选的。

使用 ZAPI 时忽略。

FC 接口忽略此项。

is_auto_revert

布尔值

如果为 true,则数据 LIF 将在某些情况下(例如启动时)恢复到其主节点,

并且自动禁用负载均衡迁移功能。

选项

  • false

  • true

is_dns_update_enabled

布尔值

在 netapp.ontap 2.9.0 中添加

指定是否为此 LIF 启用 DNS 更新。 如果在 Vserver 级别启用了更新,则将为此 LIF 发送动态更新。

在 REST 中,ONTAP 9.9.1 或更高版本支持此项。

不支持 FC 接口。

选项

  • false

  • true

布尔值

在 netapp.ontap 20.1.0 中添加

指定 LIF 是否获取 IPv4 链路本地地址。

此用例用于创建集群 LIF,以允许自动分配 IPv4 链路本地地址。

REST 不支持。

选项

  • false

  • true

key_filepath

字符串

在 netapp.ontap 20.6.0 中添加

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

listen_for_dns_query

布尔值

在 netapp.ontap 2.9.0 中添加

如果为 True,则此 IP 地址将侦听指定 dnszone 的 DNS 查询。

不支持 REST。

选项

  • false

  • true

netmask

字符串

指定 LIF 的网络掩码。

ZAPI - 当 state=present 且 is_ipv4_link_local 为 false 且未设置 subnet_name 时,需要此参数。

REST - 当 state=presentinterface_type 为 IP 时,需要此参数。

ontapi

整数

要使用的 ontap api 版本。

password

别名: pass

字符串

指定用户的密码。

probe_port

整数

在 netapp.ontap 22.1.0 中添加。

云负载均衡器的探测端口 - 仅在 Azure 环境中有效。

ZAPI 或 FC 接口不支持此项。

需要 ONTAP 9.10.1 或更高版本。

protocols

列表 / 元素=字符串

指定 LIF 上配置的数据协议列表。 默认情况下,此元素中的值为 nfs、cifs 和 fcache。

其他支持的协议是 iscsi 和 fcp。 可以通过指定“none”将 LIF 配置为不支持任何数据协议。

none、iscsi、fc-nvme 或 fcp 的协议值不能与其他任何数据协议组合使用。

address、netmask 和 firewall_policy 参数不支持“fc-nvme”选项。

REST 忽略此选项,但它可用于推导 interface_typedata_protocol

role

字符串

指定 LIF 的角色。

将角色设置为“intercluster”或“cluster”时,不支持设置协议。

创建“cluster”角色时,节点名称将显示为 LIF 名称的前缀。

例如,如果指定的名称为 clif 且节点名称为 node1,则 LIF 名称在 ONTAP 中显示为 node1_clif。

可能的值为“undef”、“cluster”、“data”、“node-mgmt”、“intercluster”、“cluster-mgmt”。

state=present 时为必填项,除非存在 service_policy 且 ONTAP 版本为 9.8 或更高版本。

此选项在 REST 中已弃用。

使用 REST 时,模块会尝试派生 service_policy 并且可能会出错。

service_policy

字符串

在 netapp.ontap 20.4.0 中添加。

从 ONTAP 9.5 开始,您可以配置 LIF 服务策略以标识将使用 LIF 的单个服务或服务列表。

在 ONTAP 9.5 中,您只能为 admin SVM 中的 LIF 分配服务策略。

在 ONTAP 9.6 中,您还可以为数据 SVM 中的 LIF 分配服务策略。

为 LIF 指定服务策略时,您无需为 LIF 指定数据协议和角色。

请注意,由于 ZAPI 问题,仍然需要角色。 此限制在 ONTAP 9.8 中已删除。

还支持通过指定角色和数据协议来创建 LIF。

state

字符串

指定的接口是否存在。

选项

  • "present" ← (默认)

  • "absent"

subnet_name

字符串

在 netapp.ontap 2.8.0 中添加。

从中分配 IP 接口地址的子网。

如果未使用该选项,则需要提供 IP 地址和网络掩码。

使用 REST 时,需要 ONTAP 9.11.1 或更高版本。

使用 REST 时,必须设置 ipspace。

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 的名称。

ZAPI 需要此项。

REST 需要此项,用于 FC 接口(数据 vserver)。

REST 需要此项,用于 SVM 范围的 IP 接口(数据 vserver)。

REST 不支持集群范围的 IP 接口。

为了帮助从 ZAPI 过渡到 REST,当角色设置为“cluster”、“node-mgmt”、“intercluster”、“cluster-mgmt”时,将忽略 vserver。

删除此选项以禁止显示警告。

注释

注意

  • REST 支持需要 ONTAP 9.7 或更高版本。

  • 支持 check_mode。

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

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

示例

- name: Create interface - ZAPI
  netapp.ontap.na_ontap_interface:
    state: present
    interface_name: data2
    home_port: e0d
    home_node: laurentn-vsim1
    role: data
    protocols:
      - nfs
      - cifs
    admin_status: up
    failover_policy: local-only
    firewall_policy: mgmt
    is_auto_revert: true
    address: 10.10.10.10
    netmask: 255.255.255.0
    force_subnet_association: false
    dns_domain_name: test.com
    listen_for_dns_query: true
    is_dns_update_enabled: true
    vserver: svm1
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

- name: Create data interface - REST - NAS
  netapp.ontap.na_ontap_interface:
    state: present
    interface_name: data2
    home_port: e0d
    home_node: laurentn-vsim1
    admin_status: up
    failover_scope: home_node_only
    service_policy: default-data-files
    is_auto_revert: true
    interface_type: ip
    address: 10.10.10.10
    netmask: 255.255.255.0
    vserver: svm1
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

- name: Create cluster interface - ZAPI
  netapp.ontap.na_ontap_interface:
    state: present
    interface_name: cluster_lif
    home_port: e0a
    home_node: cluster1-01
    role: cluster
    admin_status: up
    is_auto_revert: true
    is_ipv4_link_local: true
    vserver: Cluster
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

- name: Create cluster interface - REST
  netapp.ontap.na_ontap_interface:
    state: present
    interface_name: cluster_lif
    home_port: e0a
    home_node: cluster1-01
    service_policy: default-cluster
    admin_status: up
    is_auto_revert: true
    vserver: Cluster
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

- name: Rename interface
  netapp.ontap.na_ontap_interface:
    state: present
    from_name: ansibleSVM_lif
    interface_name: ansibleSVM_lif01
    vserver: ansibleSVM
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

- name: Migrate an interface
  netapp.ontap.na_ontap_interface:
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
    vserver: ansible
    https: true
    validate_certs: false
    state: present
    interface_name: carchi_interface3
    home_port: e0d
    home_node: ansdev-stor-1
    current_node: ansdev-stor-2
    role: data
    failover_policy: local-only
    firewall_policy: mgmt
    is_auto_revert: true
    address: 10.10.10.12
    netmask: 255.255.255.0
    force_subnet_association: false
    admin_status: up

- name: Delete interface
  netapp.ontap.na_ontap_interface:
    state: absent
    interface_name: data2
    vserver: svm1
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

作者

  • NetApp Ansible 团队 (@carchi8py)