netapp.ontap.na_ontap_command 模块 – NetApp ONTAP 运行任何 cli 命令,提供的用户名需要具有控制台登录权限。

注意

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

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

要安装它,请使用:ansible-galaxy collection install netapp.ontap。您需要满足其他要求才能使用此模块,请参阅 要求 了解详细信息。

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

netapp.ontap 2.7.0 中的新增功能

概要

  • 在 ONTAP 上运行 system-cli 命令。

  • 不能与证书身份验证和域身份验证帐户一起使用。

  • 需要 ontapi 和控制台权限。数据 vserver 不支持控制台。

  • 需要写入权限,即使是 show 命令也是如此!对于只读用户,ONTAP 会报告“Insufficient privileges”(权限不足)和“user 'xxxxx' does not have write access to this resource”(用户 'xxxxx' 没有此资源的写入权限)。

要求

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

  • 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。

command

列表 / elements=字符串 / 必需

包含命令和参数的逗号分隔列表。

exclude_lines

字符串

在 netapp.ontap 19.10.0 中添加

仅当 return_dict 为 true 时应用

仅返回 stdout_lines_filter 中包含字符串模式的行

默认:""

feature_flags

字典

在 netapp.ontap 20.5.0 中添加

启用或禁用新功能。

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

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

hostname

字符串 / 必需

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

http_port

整数

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

https

布尔值

启用和禁用 https。

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

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

选项

  • false ← (默认)

  • true

include_lines

字符串

在 netapp.ontap 19.10.0 中添加

仅当 return_dict 为 true 时应用

仅返回 stdout_lines_filter 中包含字符串模式的行

默认:""

key_filepath

字符串

在 netapp.ontap 20.6.0 中添加

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

ontapi

整数

要使用的 ontap api 版本

password

别名:pass

字符串

指定用户的密码。

privilege

字符串

在 netapp.ontap 2.8.0 中添加

运行命令的权限级别。

选项

  • "admin" ← (默认)

  • "advanced"

return_dict

布尔值

在 netapp.ontap 2.9.0 中添加

返回可解析的字典,而不是原始 XML 输出

result_value

status > 通过,失败。

stdout > 纯文本格式的命令输出。

stdout_lines > 命令输出行的列表。

stdout_lines_filter > 空列表或与 include_linesexclude_lines 参数匹配的命令输出行列表。

xml_dict > CLI 返回内容的 JSON 表示形式。

选项

  • false ← (默认)

  • true

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

字符串

在 netapp.ontap 19.10.0 中添加

如果以 vserver 管理员身份运行,则必须提供 vserver,否则模块将失败

注释

注意

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

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

示例

- name: run ontap cli command
  netapp.ontap.na_ontap_command:
    hostname: "{{ hostname }}"
    username: "{{ admin username }}"
    password: "{{ admin password }}"
    command: ['version']

# Same as above, but returns parseable dictonary
- name: run ontap cli command
  netapp.ontap.na_ontap_command:
    hostname: "{{ hostname }}"
    username: "{{ admin username }}"
    password: "{{ admin password }}"
    command: ['node', 'show', '-fields', 'node,health,uptime,model']
    privilege: 'admin'
    return_dict: true

# Same as above, but with lines filtering
- name: run ontap cli command
  netapp.ontap.na_ontap_command:
    hostname: "{{ hostname }}"
    username: "{{ admin username }}"
    password: "{{ admin password }}"
    command: ['node', 'show', '-fields', 'node,health,uptime,model']
    exclude_lines: 'ode ' # Exclude lines with 'Node ' or 'node ', or anything else containing 'ode '.
    privilege: 'admin'
    return_dict: true

作者

  • NetApp Ansible 团队 (@carchi8py)