netapp.ontap.na_ontap_ssh_command 模块 – NetApp ONTAP 使用 paramiko 通过普通 SSH 运行任何 CLI 命令。

注意

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

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

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

要在 Playbook 中使用它,请指定:netapp.ontap.na_ontap_ssh_command

netapp.ontap 20.8.0 中的新增功能

概要

  • 使用 paramiko 通过 SSH 在 ONTAP 上运行 CLI 命令。

  • 输出以 stdoutstderr 返回,也以 stdout_linesstdout_lines_filteredstderr_lines 返回。

  • 请注意,即使命令失败,模块也可能成功。您需要分析 stdout 并检查结果。

  • 如果 SSH 主机密钥未知且被接受,则会更新 warnings

  • 与 ZAPI 或 REST API 相关的选项将被忽略。

要求

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

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

参数

参数

注释

accept_unknown_host_keys

布尔值

如果主机密钥不在 known_hosts 文件中,则当值为 false 时,拒绝连接。

当值为 true 时,如果主机密钥未知,则接受它,但报告警告。

请注意,该密钥不会添加到文件中。您可以使用 SSH 手动添加密钥。

选择

  • false ← (默认)

  • true

cert_filepath

字符串

在 netapp.ontap 20.6.0 中添加

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

不支持 python 2.6。

command

字符串 / 必需

包含命令和参数的字符串。

exclude_lines

字符串

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

默认值: ""

feature_flags

字典

在 netapp.ontap 20.5.0 中添加

启用或禁用新功能。

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

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

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 时忽略。

hostname

字符串 / 必需

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

http_port

整数

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

https

布尔值

启用和禁用 https。

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

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

选择

  • false ← (默认)

  • true

include_lines

字符串

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

默认值: ""

key_filepath

字符串

在 netapp.ontap 20.6.0 中添加

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

ontapi

整数

要使用的 ontap api 版本

password

别名: pass

字符串

指定用户的密码。

权限

字符串

运行命令的权限级别,例如 admin、advanced。

如果设置,该命令将以 set -privilege <privilege>; 作为前缀。

service_processor

别名:sp

布尔值

目标系统是 ONTAP 还是服务处理器 (SP)

仅当设置了权限时才有意义

选择

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

说明

注意

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

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

示例

- name: run ontap cli command using SSH
  na_ontap_ssh_command:
    hostname: "{{ hostname }}"
    username: "{{ admin_username }}"
    password: "{{ admin_password }}"
    command: version

# Same as above, with parameters
- name: run ontap cli command
  na_ontap_ssh_command:
    hostname: "{{ hostname }}"
    username: "{{ admin_username }}"
    password: "{{ admin_password }}"
    command: node show -fields node,health,uptime,model
    privilege: admin

# Same as above, but with lines filtering
- name: run ontap cli command
  na_ontap_ssh_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'
    # use with caution!
    accept_unknown_host_keys: true
    privilege: admin

- name: run ontap SSH command on SP
  na_ontap_ssh_command:
    # <<: *sp_login
    command: sp switch-version
    privilege: diag
    sp: true
  register: result
- debug: var=result

返回值

通用返回值已记录在此处 此处,以下是此模块特有的字段

描述

stdout_lines_filtered

list / elements=string

除了 stdout 和 stdout_lines,还提供一个非空白行列表,不包括最后一行和登录失败信息。

可以使用 include_lines 和 exclude_lines 过滤器进一步优化此列表。

返回: 始终

作者

  • NetApp Ansible 团队 (@carchi8py)