netapp.ontap.na_ontap_storage_unit module – NetApp ONTAP ASA r2 storage unit

Note

This module is part of the netapp.ontap collection (version 23.1.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install netapp.ontap. You need further requirements to be able to use this module, see Requirements for details.

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

New in netapp.ontap 23.0.0

Synopsis

  • Clone a storage unit.

  • Split a storage unit clone.

  • Move a storage unit.

  • Restore a storage unit to a prior snapshot.

Requirements

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

  • Ansible 2.9 or later - 2.12 or later is recommended.

  • Python3 - 3.9 or later is recommended.

  • netapp-lib only when using ZAPI (install using ‘pip install netapp-lib’), Please note that netapp-lib is deprecated and no longer maintained. Proceed at your own risk.

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

Parameters

Parameter

Comments

cert_filepath

string

added in netapp.ontap 20.6.0

path to SSL client cert file (.pem).

not supported with python 2.6.

clone

dictionary

Identifiers of the parent storage unit or storage unit snapshot from which to clone a new storage unit.

The storage unit clone and its source must reside on the same SVM.

snapshot

string

The name of the snapshot the source storage unit resides in.

storage_unit

string

The name of the source storage unit.

feature_flags

dictionary

added in netapp.ontap 20.5.0

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.

force_ontap_version

string

added in netapp.ontap 21.23.0

Override the cluster ONTAP version when using REST.

The behavior is undefined if the version does not match the target cluster.

This is provided as a work-around when the cluster version cannot be read because of permission issues. See https://github.com/ansible-collections/netapp.ontap/wiki/Known-issues.

This should be in the form 9.10 or 9.10.1 with each element being an integer number.

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

Enable and disable https.

Ignored when using REST as only https is supported.

Ignored when using SSL certificate authentication as it requires SSL.

Choices:

  • false ← (default)

  • true

key_filepath

string

added in netapp.ontap 20.6.0

path to SSL client key file.

name

string / required

Specifies the name of the storage unit (LUN or NVMe namespace).

password

aliases: pass

string

Password for the specified user.

restore_to

string

Specifies the name of the snapshot to restore the storage unit to the point in time the snapshot was taken.

restore_to_snapshot

string

Specifies the name of the snapshot to restore the storage unit to the point in time the snapshot was taken.

split_initiated

boolean

Setting this field initiates a split of a FlexClone storage unit from a FlexVol storage unit.

This operation stops the replication of data but doesn’t remove the snapshots from the replicas.

Choices:

  • false

  • true

state

string

Manage storage unit operations, only present is supported.

Choices:

  • "present" ← (default)

target_location

string

Specifies the name of the destination storage availability zone for moving the storage unit.

time_out

integer

With wait_for_completion set, specifies time to wait for any storage unit clone, split, restore or move operations in seconds.

Default: 180

use_rest

string

This module only supports REST.

always – will always use the REST API. A warning is issued if the module does not support REST.

Default: "always"

username

aliases: user

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://docs.netapp.com/us-en/ontap/authentication/create-svm-user-accounts-task.html.

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.

validate_certs

boolean

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.

Choices:

  • false

  • true ← (default)

vserver

string / required

Specifies the SVM in which the storage unit is located.

wait_for_completion

boolean

Set this parameter to ‘true’ for synchronous execution.

For asynchronous, execution exits as soon as the request is sent, and the operation continues in the background.

Choices:

  • false

  • true ← (default)

Notes

Note

  • Only supported with REST and requires ONTAP 9.16.1 or later.

  • Only suppored with ASA r2 systems.

  • The storage unit clone and its source must reside on the same SVM.

  • Module is not idempotent when restore_to is set.

  • Storage unit REST API doesn’t support DELETE operation. Kindly refer to module na_ontap_lun or na_ontap_nvme_namespace for deleting corresponding storage unit.

  • The modules prefixed with na_ontap are built to support the ONTAP storage platform.

  • https is enabled by default and recommended. To enable http on the cluster you must run the following commands ‘set -privilege advanced;’ ‘system services web modify -http-enabled true;’

Examples

- name: Create a new storage unit(LUN) clone
  netapp.ontap.na_ontap_storage_unit:
    state: present
    name: lun1_clone1
    vserver: svm1
    clone:
      storage_unit: lun1
    wait_for_completion: true
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
    https: true
    validate_certs: "{{ validate_certs }}"
    use_rest: always

- name: Split a storage unit(LUN) clone
  netapp.ontap.na_ontap_storage_unit:
    state: present
    name: lun1_clone1
    vserver: svm1
    split_initiated: true
    wait_for_completion: true
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
    https: true
    validate_certs: "{{ validate_certs }}"
    use_rest: always

- name: Create a new storage unit(LUN) clone using snapshot
  netapp.ontap.na_ontap_storage_unit:
    state: present
    name: lun1_clone1
    vserver: svm1
    clone:
      storage_unit: lun1
      snapshot: "hourly.2025-04-23_0205"
    wait_for_completion: true
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
    https: true
    validate_certs: "{{ validate_certs }}"
    use_rest: always

- name: Clone a storage unit(LUN), split new clone simultaneously
  netapp.ontap.na_ontap_storage_unit:
    state: present
    name: lun1_clone1
    vserver: svm1
    clone:
      storage_unit: lun1
    split_initiated: true
    wait_for_completion: true
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
    https: true
    validate_certs: "{{ validate_certs }}"
    use_rest: always

- name: Restore a storage unit(LUN) to a prior snapshot
  netapp.ontap.na_ontap_storage_unit:
    state: present
    name: lun1
    vserver: svm1
    restore_to: "hourly.2025-04-21_0905"
    wait_for_completion: true
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
    https: true
    validate_certs: "{{ validate_certs }}"
    use_rest: always

- name: Move a storage unit(LUN)
  netapp.ontap.na_ontap_storage_unit:
    state: present
    name: lun1
    vserver: svm1
    target_location: storage_availability_zone_0
    wait_for_completion: true
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"
    https: true
    validate_certs: "{{ validate_certs }}"
    use_rest: always

Authors

  • NetApp Ansible Team (@carchi8py)