netapp.ontap.na_ontap_rest_info 模块 – 使用 REST API 的 NetApp ONTAP 信息收集器

注意

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

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

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

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

netapp.ontap 20.5.0 新增

概要

  • 此模块允许您使用 REST API 收集有关 ONTAP 配置的各种信息

要求

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

  • 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 中添加

启用或禁用新功能。

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

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

fields

列表 / 元素=字符串

在 netapp.ontap 20.6.0 中添加

从子集中请求特定字段。

建议 - “<字段列表>”返回指定的字段,只允许一个子集。

不建议 - “*”返回所有字段,允许一个或多个子集。此选项可用于发现,但不建议在生产中使用。

强烈不建议 - “**”返回所有字段,允许一个或多个子集。此选项可能会给系统带来额外的负载,不应在生产中使用。

有限 - “ ”返回默认字段,通常是唯一标识记录的属性(键)。默认情况下不返回其他数据,需要使用字段名称或 * 显式调用。

如果该选项不存在,则返回该 API 的默认字段(请参阅上面的“ ”)。

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 的形式,每个元素都是一个整数。

gather_subset

列表 / 元素=字符串

提供时,此参数会将收集的信息限制为给定的子集。

可以给出 REST API 或 ZAPI 信息名称。此参数的可能值包括

application/applications 或 application_info

application/consistency-groups

application/templates 或 application_template_info

cloud/targets 或 cloud_targets_info

cluster

cluster/chassis 或 cluster_chassis_info

cluster/counter/tables

cluster/firmware/history

cluster/jobs 或 cluster_jobs_info

cluster/licensing/capacity-pools

cluster/licensing/license-managers

cluster/licensing/licenses 或 license_info

cluster/mediators

cluster/metrics 或 cluster_metrics_info

cluster/metrocluster 或 metrocluster_info

cluster/metrocluster/diagnostics 或 cluster_metrocluster_diagnostics 或 metrocluster_check_info

cluster/metrocluster/dr-groups

cluster/metrocluster/interconnects

cluster/metrocluster/nodes 或 metrocluster-node-get-iter

cluster/metrocluster/operations

cluster/metrocluster/svms

cluster/nodes 或 cluster_node_info 或 sysconfig_info

cluster/ntp/keys

cluster/ntp/servers 或 ntp_server_info

cluster/peers 或 cluster_peer_info

cluster/schedules 或 cluster_schedules 或 job_schedule_cron_info

cluster/sensors

cluster/software 或 ontap_system_version 或 cluster_image_info

cluster/software/download 或 cluster_software_download

cluster/software/history 或 cluster_software_history

cluster/software/packages 或 cluster_software_packages

cluster/web

name-services/cache/group-membership/settings

name-services/cache/host/settings

name-services/cache/netgroup/settings

名称服务/缓存/设置

名称服务/缓存/unix组/设置

名称服务/dns 或 svm_dns_config_info 或 net_dns_info

名称服务/ldap 或 svm_ldap_config_info 或 ldap_client 或 ldap_config

名称服务/ldap-schemas

名称服务/本地主机

名称服务/名称映射 或 svm_name_mapping_config_info

名称服务/nis 或 svm_nis_config_info

名称服务/unix组

名称服务/unix用户

网络/以太网/广播域 或 broadcast_domains_info 或 net_port_broadcast_domain_info

网络/以太网/端口 或 network_ports_info 或 net_port_info

网络/以太网/交换机/端口

网络/以太网/交换机 或 cluster_switch_info

网络/fc/光纤通道

网络/fc/接口

网络/fc/登录 或 san_fc_logins_info

网络/fc/端口

网络/fc/wwpn别名 或 san_fc_wppn-aliases 或 fcp_alias_info

网络/http代理

网络/ip/bgp/对等组

网络/ip/接口 或 ip_interfaces_info 或 net_interface_info

网络/ip/路由 或 ip_routes_info 或 net_routes_info

网络/ip/服务策略 或 ip_service_policies 或 net_interface_service_policy_info

网络/ip/子网

网络/ip空间 或 network_ipspaces_info 或 net_ipspaces_info

私有/支持/警报 或 sys_cluster_alerts

私有/cli/vserver/安全/文件目录 或 file_directory_security

协议/活动目录

协议/审计

协议/cifs/连接

协议/cifs/域

协议/cifs/组策略

协议/cifs/主目录/搜索路径 或 cifs_home_directory_info

协议/cifs/本地组

协议/cifs/本地用户

协议/cifs/netbios

协议/cifs/服务 或 cifs_services_info 或 cifs_options_info

协议/cifs/会话/文件

协议/cifs/会话

协议/cifs/卷影副本

协议/cifs/卷影副本集

协议/cifs/共享 或 cifs_share_info

协议/cifs/用户和组/权限

协议/cifs/unix符号链接映射

协议/fpolicy

协议/锁

协议/ndmp

协议/ndmp/节点

协议/ndmp/会话

协议/ndmp/svm

协议/nfs/已连接客户端

协议/nfs/已连接客户端映射

协议/nfs/已连接客户端设置

协议/nfs/导出策略 或 export_policy_info

协议/nfs/导出策略/规则 需要设置 owning_resource

协议/nfs/kerberos/接口

协议/nfs/kerberos/域 或 kerberos_realm_info

协议/nfs/服务 或 vserver_nfs_info 或 nfs_info

协议/nvme/接口 或 nvme_interface_info

协议/nvme/服务 或 nvme_info

协议/nvme/子系统 或 nvme_subsystem_info

协议/nvme/子系统控制器

协议/nvme/子系统映射

协议/s3/存储桶

协议/s3/服务

协议/san/fcp/服务 或 san_fcp_services 或 fcp_service_info

协议/san/igroups 或 nitiator_groups_info 或 igroup_info

协议/san/iscsi/凭据 或 san_iscsi_credentials

协议/san/iscsi/服务 或 san_iscsi_services 或 iscsi_service_info

协议/san/iscsi/会话

协议/san/lun映射 或 san_lun_maps 或 lun_map_info

协议/san/端口集

协议/san/vvol绑定

协议/vscan 或 vscan_status_info 或 vscan_info

协议/vscan/按访问策略 需要设置 owning_resource

协议/vscan/按需策略 需要设置 owning_resource

协议/vscan/扫描程序池 需要设置 owning_resource

协议/vscan/服务器状态 或 vscan_connection_status_all_info

安全

安全/帐户 或 security_login_info 或 security_login_account_info

安全/反勒索软件/嫌疑人

安全/审计

安全/审计/目标 或 cluster_log_forwarding_info

安全/审计/消息

安全/身份验证/集群/ad代理

安全/身份验证/集群/ldap

安全/身份验证/集群/nis

安全/身份验证/集群/saml-sp

安全/身份验证/公钥

安全/aws-kms

安全/azure密钥保管库

安全/证书

安全/gcp-kms

安全/ipsec

安全/ipsec/ca证书

安全/ipsec/策略

安全/ipsec/安全关联

安全/密钥管理器配置

安全/密钥管理器

安全/密钥存储

安全/登录/消息

安全/多管理员验证

安全/多管理员验证/审批组

安全/多管理员验证/请求

安全/多管理员验证/规则

安全/角色 或 security_login_rest_role_info

安全/ssh

安全/ssh/svm

snapmirror/策略 或 snapmirror_policy_info

snapmirror/关系 或 snapmirror_info

存储/聚合 或 aggregate_info

存储/网桥 或 storage_bridge_info

存储/集群

存储/磁盘 或 disk_info

存储/文件/克隆/拆分负载

存储/文件/克隆/拆分状态

存储/文件/克隆/令牌

存储/文件/移动

存储/flexcache/flexcache 或 storage_flexcaches_info

存储/flexcache/源 或 storage_flexcaches_origin_info

存储/lun 或 storage_luns_info 或 lun_info (如果存在 serial_number,则计算 serial_hex 和 naa_id)

存储/命名空间 或 storage_NVMe_namespaces 或 nvme_namespace_info

存储/池

存储/端口 或 storage_ports_info

存储/qos/策略 或 storage_qos_policies 或 qos_policy_info 或 qos_adaptive_policy_info

存储/qos/工作负载

存储/qtree 或 storage_qtrees_config 或 qtree_info

存储/配额/报告 或 storage_quota_reports 或 quota_report_info

存储/配额/规则 或 storage_quota_policy_rules

存储/机架 或 storage_shelves_config 或 shelf_info

存储/snaplock/审计日志

存储/snaplock/合规时钟

存储/snaplock/事件保留/操作

存储/snaplock/事件保留/策略

存储/snaplock/文件指纹

存储/snaplock/诉讼

存储/快照策略 或 storage_snapshot_policies 或 snapshot_policy_info

存储/交换机

存储/磁带设备

存储/卷 或 volume_info

存储/卷/快照 需要设置 owning_resource

存储/卷效率策略 或 sis_policy_info

支持/autosupport 或 autosupport_config_info

支持/autosupport/检查 或 autosupport_check_info

支持/autosupport/消息 或 autosupport_messages_history

支持/自动更新

支持/自动更新/配置

支持/自动更新/更新

支持/配置备份

支持/配置备份/备份

支持/coredump/coredump

支持/ems 或 support_ems_config

支持/ems/目标 或 event_notification_info 或 event_notification_destination_info

支持/ems/事件 或 support_ems_events

支持/ems/过滤器 或 support_ems_filters

支持/ems/消息

支持/snmp

支持/snmp/陷阱主机

支持/snmp/用户

svm/迁移

svm/对等 或 svm_peers_info 或 vserver_peer_info

svm/对等权限 或 svm_peer-permissions_info

svm/svm 或 vserver_info

以下项没有直接的 Rest API 等效项

aggr_efficiency_info

cifs_vserver_security_info

clock_info

cluster_identity_info

net_vlan_info

sis_info

snapmirror_destination_info

system_node_info

volume_space_info

可以指定一个值列表以包含更大的子集。

ONTAP 9.6 及更高版本支持 REST API。

默认值: ["demo"]

hal_linking

布尔值

如果为 false,则在 REST 调用中禁用 HAL 编码的链接。

选项

  • false

  • true ← (默认)

hostname

字符串 / 必需

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

http_port

整数

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

https

布尔值

启用和禁用 https。

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

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

选项

  • false ← (默认)

  • true

ignore_api_errors

列表 / 元素=字符串

在 netapp.ontap 21.23.0 中添加

子字符串列表。

如果在获取子集时错误消息中包含子字符串,则模块不会失败,并且该错误将报告在子集中。

key_filepath

字符串

在 netapp.ontap 20.6.0 中添加

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

max_records

整数

单个调用中返回的最大记录数。

默认值: 1024

owning_resource

字典

在 netapp.ontap 21.19.0 中添加

某些资源无法直接访问。您需要根据所有者或父级选择它们。例如,快照的卷。

以下子集需要一个所有资源,以及当 uuid 不存在时需要以下子选项。

<storage/volumes/snapshots> volume_name 是卷名称,svm_name 是该卷的所有者 vserver 名称。

<protocols/nfs/export-policies/rules> policy_name 是策略的名称,svm_name 是策略的所有者 vserver 名称,rule_index 是规则索引。

<protocols/vscan/on-access-policies> svm_name 是 vscan 的所有者 vserver 名称

<protocols/vscan/on-demand-policies> svm_name 是 vscan 的所有者 vserver 名称

<protocols/vscan/scanner-pools> svm_name 是 vscan 的所有者 vserver 名称

parameters

字典

在 netapp.ontap 20.7.0 中添加

允许传入任何 rest 选项

password

别名:pass

字符串

指定用户的密码。

state

字符串

自 21.1.0 起已弃用。

此选项被忽略并且继续被忽略。

use_python_keys

布尔值

在 netapp.ontap 21.9.0 中添加

如果为 true,则返回的字典键中的 / 将转换为 _

它使得可以在处理输出时使用 . 表示法。

例如,ontap_info[“svm/svms”] 可以作为 ontap_info.svm_svms 访问。

选项

  • false ← (默认)

  • true

use_rest

字符串

此模块仅支持 REST。

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

默认值: "always"

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 ← (默认)

说明

注意

  • security_login_role_config_info 没有 REST 等效项。

  • security_login_role_info 没有 REST 等效项。

  • security_key_manager_key_info 没有对应的 REST 接口。

  • vserver_motd_info 没有对应的 REST 接口。

  • vserver_login_banner_info 没有对应的 REST 接口。

  • vscan_connection_extended_stats_info 没有对应的 REST 接口。

  • env_sensors_info 没有对应的 REST 接口。

  • fcp_adapter_info 没有对应的 REST 接口。

  • net_dev_discovery_info 没有对应的 REST 接口。

  • net_failover_group_info 没有对应的 REST 接口。

  • net_firewall_info 没有对应的 REST 接口。

  • ntfs_dacl_info 没有对应的 REST 接口。

  • ntfs_sd_info 没有对应的 REST 接口。

  • role_info 没有对应的 REST 接口。

  • subsys_health_info 没有对应的 REST 接口。

  • volume_move_target_aggr_info 没有对应的 REST 接口。

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

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

示例

- name: run ONTAP gather facts for vserver info
  netapp.ontap.na_ontap_rest_info:
      hostname: "1.2.3.4"
      username: "testuser"
      password: "test-password"
      https: true
      validate_certs: false
      use_rest: Always
      gather_subset:
        - svm/svms

- name: run ONTAP gather facts for aggregate info and volume info
  netapp.ontap.na_ontap_rest_info:
      hostname: "1.2.3.4"
      username: "testuser"
      password: "test-password"
      https: true
      validate_certs: false
      use_rest: Always
      gather_subset:
        - storage/aggregates
        - storage/volumes

- name: run ONTAP gather facts for aggregate info and volume info with fields section
  netapp.ontap.na_ontap_rest_info:
      hostname: "1.2.3.4"
      username: "testuser"
      password: "test-password"
      https: true
      fields:
        - '*'
      validate_certs: false
      use_rest: Always
      gather_subset:
        - storage/aggregates
        - storage/volumes

- name: run ONTAP gather facts for aggregate info with specified fields
  netapp.ontap.na_ontap_rest_info:
      hostname: "1.2.3.4"
      username: "testuser"
      password: "test-password"
      https: true
      fields:
        - 'uuid'
        - 'name'
        - 'node'
      validate_certs: false
      use_rest: Always
      gather_subset:
        - storage/aggregates
      parameters:
        recommend:
          true

- name: Get Snapshot info (owning_resource example)
  netapp.ontap.na_ontap_rest_info:
      hostname: "1.2.3.4"
      username: "testuser"
      password: "test-password"
      https: true
      fields:
        - '*'
      validate_certs: false
      use_rest: Always
      gather_subset:
        - storage/volumes/snapshots
      owning_resource:
        volume_name: volume_name
        svm_name: svm_name

- name: run ONTAP gather facts for volume info with query on name and state
  netapp.ontap.na_ontap_rest_info:
      hostname: "1.2.3.4"
      username: "testuser"
      password: "test-password"
      https: true
      validate_certs: false
      gather_subset:
        - storage/volumes
      parameters:
        name: ansible*
        state: online

- name: run ONTAP gather fact to get DACLs
  netapp.ontap.na_ontap_rest_info:
    hostname: "1.2.3.4"
    username: "testuser"
    password: "test-password"
    https: true
    validate_certs: false
    gather_subset:
      - file_directory_security
    parameters:
      vserver: svm1
      path: /vol1/qtree1
    use_python_keys: true

- name: get ip network interface info.
  netapp.ontap.na_ontap_rest_info:
    hostname: "1.2.3.4"
    username: "testuser"
    password: "test-password"
    https: true
    validate_certs: false
    gather_subset:
      - ip_interfaces_info
    parameters:
      location.failover: home_node_only
      location.node.name: ontap_cluster
      service_policy.name: default-data-files

- name: get aggregate info
  netapp.ontap.na_ontap_rest_info:
    hostname: "1.2.3.4"
    username: "testuser"
    password: "test-password"
    https: true
    validate_certs: false
    gather_subset:
      - aggregate_info
    parameters:
      node.name: ontap_cluster
      block_storage.primary.raid_type: raid_dp

# assuming module_defaults is used to set hostname, username, ...
- name: run demo subset using custom vsadmin role
  netapp.ontap.na_ontap_rest_info:
    gather_subset:
      - demo
    force_ontap_version: 9.8
    ignore_api_errors:
      - 'not authorized for that command'

# reports: {"cluster/nodes": {"error": {"code": "6", "message": "not authorized for that command"}}

作者

  • NetApp Ansible 团队 (@carchi8py)