netapp.ontap.na_ontap_zapit 模块 – NetApp ONTAP 在 ONTAP 上运行任何 ZAPI

注意

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

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

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

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

netapp.ontap 20.4.0 中的新增功能

概要

  • 在 ONTAP 上调用 ZAPI。

  • 集群 ZAPI 使用集群管理员帐户运行。

  • Vserver ZAPI 可以使用 vsadmin 帐户或使用 vserver 隧道(具有 *vserver 选项* 的集群管理员)运行。

  • 如果成功,则返回一个 json 字典作为 response

  • 如果发生 ZAPI 错误,则设置 statuserrnoreason 以帮助诊断问题,

  • 并将调用报告为错误(“失败”)。

  • 其他错误(例如连接问题)报告为 Ansible 错误。

要求

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

  • 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 不支持。

feature_flags

字典

在 netapp.ontap 20.5.0 中添加

启用或禁用新功能。

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

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

hostname

字符串 / 必需

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

http_port

整数

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

https

布尔值

启用和禁用 https。

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

当使用 SSL 证书身份验证时,由于需要 SSL,因此将被忽略。

选项

  • false ←(默认)

  • true

key_filepath

字符串

在 netapp.ontap 20.6.0 中添加

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

ontapi

整数

要使用的 ontap api 版本

password

别名:pass

字符串

指定用户的密码。

use_rest

字符串

此模块仅支持 ZAPI,不能切换到 REST。

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

auto – 将始终使用 ZAPI。

默认值: "never"

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

字典 / 必需

zapi 和参数的字典。

XML 标记 *<tag>value</tag>* 是一个字典,其中 tag 作为键。

值可以是另一个字典、字典列表、字符串或空值。

例如 *<tag/>* 表示为 *tag:*

一次只能调用一个 zapi。如果发现重复的键,Ansible 会发出警告,并且只使用最后一个条目。

注意

注意

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

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

示例

-
  name: Ontap ZAPI
  hosts: localhost
  gather_facts: False
  collections:
    - netapp.ontap
  vars:
    login: &login
      hostname: "{{ admin_ip }}"
      username: "{{ admin_username }}"
      password: "{{ admin_password }}"
      https: true
      validate_certs: false
    svm_login: &svm_login
      hostname: "{{ svm_admin_ip }}"
      username: "{{ svm_admin_username }}"
      password: "{{ svm_admin_password }}"
      https: true
      validate_certs: false

  tasks:
    - name: run ontap ZAPI command as cluster admin
      netapp.ontap.na_ontap_zapit:
        <<: *login
        zapi:
          system-get-version:
      register: output
    - debug: var=output

    - name: run ontap ZAPI command as cluster admin
      netapp.ontap.na_ontap_zapit:
        <<: *login
        zapi:
          vserver-get-iter:
      register: output
    - debug: var=output

    - name: run ontap ZAPI command as cluster admin
      netapp.ontap.na_ontap_zapit:
        <<: *login
        zapi:
          vserver-get-iter:
            desired-attributes:
              vserver-info:
                - aggr-list:
                    - aggr-name
                - allowed-protocols:
                    - protocols
                - vserver-aggr-info-list:
                    - vserser-aggr-info
                - uuid
            query:
              vserver-info:
                vserver-name: trident_svm
      register: output
    - debug: var=output

    - name: run ontap ZAPI command as vsadmin
      netapp.ontap.na_ontap_zapit:
        <<: *svm_login
        zapi:
          vserver-get-iter:
            desired-attributes:
              vserver-info:
                - uuid
      register: output
    - debug: var=output

    - name: run ontap ZAPI command as vserver tunneling
      netapp.ontap.na_ontap_zapit:
        <<: *login
        vserver: trident_svm
        zapi:
          vserver-get-iter:
            desired-attributes:
              vserver-info:
                - uuid
      register: output
    - debug: var=output

    - name: run ontap active-directory ZAPI command
      netapp.ontap.na_ontap_zapit:
        <<: *login
        vserver: trident_svm
        zapi:
          active-directory-account-create:
            account-name: testaccount
            admin-username: testuser
            admin-password: testpass
            domain: testdomain
            organizational-unit: testou
      register: output
      ignore_errors: True
    - debug: var=output

返回值

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

描述

errno

字符串

如果执行了 ZAPI 但失败,则 ZAPI 设置的错误代码。

如果成功,或者无法执行 ZAPI 调用,则不存在。

返回: 出现错误时

reason

字符串

如果执行了 ZAPI 但失败,则 ZAPI 设置的错误原因。

如果成功,或者无法执行 ZAPI 调用,则不存在。

返回: 出现错误时

response

字典

如果成功,则是一个 json 字典,表示 ZAPI 返回的数据。

如果执行了 ZAPI 但失败,则是一个空字典。

如果无法执行 ZAPI 调用,则不存在。

返回: 成功时

status

字符串

如果执行了 ZAPI 但失败,则 ZAPI 设置的状态。

如果成功,或者无法执行 ZAPI 调用,则不存在。

返回: 出现错误时

作者

  • NetApp Ansible 团队 (@carchi8py)