netapp.ontap.na_ontap_cluster – NetApp ONTAP cluster - create a cluster and add/remove nodes.

Note

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

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

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

New in version 2.6.0: of netapp.ontap

Synopsis

  • Create ONTAP cluster.

  • Add or remove cluster nodes using cluster_ip_address.

  • Adding a node requires ONTAP 9.3 or better.

  • Removing a node requires ONTAP 9.4 or better.

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
cert_filepath
string
added in 20.6.0 of netapp.ontap
path to SSL client cert file (.pem).
not supported with python 2.6.
cluster_contact
string
added in 19.11.0 of netapp.ontap
Cluster contact, only relevant if performing a modify action.
cluster_ip_address
string
intra cluster IP address of the node to be added or removed.
cluster_location
string
added in 19.11.0 of netapp.ontap
Cluster location, only relevant if performing a modify action.
cluster_name
string
The name of the cluster to manage.
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
    Choices:
  • 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.
key_filepath
string
added in 20.6.0 of netapp.ontap
path to SSL client key file.
node_name
string
added in 20.9.0 of netapp.ontap
Name of the node to be added or removed from the cluster.
Be aware that when adding a node, '-' are converted to '_' by the ONTAP backend.
When creating a cluster, node_name is ignored.
When adding a node using cluster_ip_address, node_name is optional.
When used to remove a node, cluster_ip_address and node_name are mutually exclusive.
ontapi
integer
The ontap api version to use
password
string
Password for the specified user.

aliases: pass
single_node_cluster
boolean
added in 19.11.0 of netapp.ontap
    Choices:
  • no
  • yes
Whether the cluster is a single node cluster. Ignored for 9.3 or older versions.
If present, it was observed that 'Cluster' interfaces were deleted, whatever the value.
state
string
    Choices:
  • present ←
  • absent
Whether the specified cluster should exist (deleting a cluster is not supported).
Whether the node identified by its cluster_ip_address should be in the cluster or not.
time_out
integer
added in 21.1.0 of netapp.ontap
Default:
180
time to wait for cluster creation in seconds.
Error out if task is not completed in defined time.
if 0, the request is asynchronous.
default is set to 3 minutes.
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
    Choices:
  • 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: Create cluster
  na_ontap_cluster:
    state: present
    cluster_name: new_cluster
    time_out: 0
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
- name: Add node to cluster (Join cluster)
  na_ontap_cluster:
    state: present
    cluster_ip_address: 10.10.10.10
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
- name: Add node to cluster (Join cluster)
  na_ontap_cluster:
    state: present
    cluster_ip_address: 10.10.10.10
    node_name: my_preferred_node_name
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
- name: Create a 2 node cluster in one call
  na_ontap_cluster:
    state: present
    cluster_name: new_cluster
    cluster_ip_address: 10.10.10.10
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
- name: Remove node from cluster
  na_ontap_cluster:
    state: absent
    cluster_ip_address: 10.10.10.10
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
- name: Remove node from cluster
  na_ontap_cluster:
    state: absent
    node_name: node002
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
- name: modify cluster
  na_ontap_cluster:
    state: present
    cluster_contact: testing
    cluster_location: testing
    cluster_name: "{{ netapp_cluster}}"
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

Authors