netapp.ontap.na_ontap_ssh_command – NetApp ONTAP Run any cli command over plain SSH using paramiko.

From Get docs
Ansible/docs/2.11/collections/netapp/ontap/na ontap ssh command module


netapp.ontap.na_ontap_ssh_command – NetApp ONTAP Run any cli command over plain SSH using paramiko.

Note

This plugin is part of the netapp.ontap collection (version 21.1.1).

To install it use: ansible-galaxy collection install netapp.ontap.

To use it in a playbook, specify: netapp.ontap.na_ontap_ssh_command.


New in version 20.8.0: of netapp.ontap


Synopsis

  • Run cli commands on ONTAP over SSH using paramiko.
  • Output is returned in stdout and stderr, and also as stdout_lines, stdout_lines_filtered, stderr_lines.
  • Note that the module can succeed even though the command failed. You need to analyze stdout and check the results.
  • If the SSH host key is unknown and accepted, warnings is updated.
  • Options related to ZAPI or REST APIs are ignored.

Requirements

The below requirements are needed on the host that executes this module.

  • Ansible 2.9
  • Python3 netapp-lib (2018.11.13) or later. Install using ‘pip install netapp-lib’
  • netapp-lib 2020.3.12 is strongly recommended as it provides better error reporting for connection issues.
  • A physical or virtual clustered Data ONTAP system. The modules support Data ONTAP 9.1 and onward.
  • REST support requires ONTAP 9.6 or later.
  • To enable http on the cluster you must run the following commands ‘set -privilege advanced;’ ‘system services web modify -http-enabled true;’

Parameters

Parameter Choices/Defaults Comments

accept_unknown_host_keys

boolean

  • no

  • yes

When false, reject the connection if the host key is not in known_hosts file.

When true, if the host key is unknown, accept it, but report a warning.

Note that the key is not added to the file. You could add the key by manually using SSH.

cert_filepath

string

added in 20.6.0 of netapp.ontap

path to SSL client cert file (.pem).

not supported with python 2.6.

command

string / required

a string containing the command and arguments.

exclude_lines

string

Default:

""

return only lines containing string pattern in stdout_lines_filtered

feature_flags

dictionary

added in 20.5.0 of netapp.ontap

Enable or disable a new feature.

This can be used to enable an experimental feature or disable a new feature that breaks backward compatibility.

Supported keys and values are subject to change without notice. Unknown keys are ignored.

hostname

string / required

The hostname or IP address of the ONTAP instance.

http_port

integer

Override the default port (80 or 443) with this port

https

boolean

  • no

  • yes

Enable and disable https.

Ignored when using REST as only https is supported.

Ignored when using SSL certificate authentication as it requires SSL.

include_lines

string

Default:

""

return only lines containing string pattern in stdout_lines_filtered

key_filepath

string

added in 20.6.0 of netapp.ontap

path to SSL client key file.

ontapi

integer

The ontap api version to use

password

string

Password for the specified user.


aliases: pass

privilege

string

privilege level at which to run the command, eg admin, advanced.

if set, the command is prefixed with set -privilege <privilege>;.

service_processor

boolean

  • no

  • yes

whether the target system is ONTAP or the service processor (SP)

only menaningful when privilege is set


aliases: sp

use_rest

string

Default:

"auto"

REST API if supported by the target system for all the resources and attributes the module requires. Otherwise will revert to ZAPI.

always -- will always use the REST API

never -- will always use the ZAPI

auto -- will try to use the REST Api

username

string

This can be a Cluster-scoped or SVM-scoped account, depending on whether a Cluster-level or SVM-level API is required.

For more information, please read the documentation https://mysupport.netapp.com/NOW/download/software/nmsdk/9.4/.

Two authentication methods are supported

1. basic authentication, using username and password,

2. SSL certificate authentication, using a ssl client cert file, and optionally a private key file.

To use a certificate, the certificate must have been installed in the ONTAP cluster, and cert authentication must have been enabled.


aliases: user

validate_certs

boolean

  • no
  • yes

If set to no, the SSL certificates will not be validated.

This should only set to False used on personally controlled sites using self-signed certificates.



Notes

Note

  • The modules prefixed with na\_ontap are built to support the ONTAP storage platform.


Examples

- 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

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description

stdout_lines_filtered

list / elements=string

always

In addition to stdout and stdout_lines, a list of non-white lines, excluding last and failed login information.

The list can be further refined using the include_lines and exclude_lines filters.





Authors

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/netapp/ontap/na_ontap_ssh_command_module.html