everpure.flasharray.purefa_volume module – Manage volumes on Everpure FlashArrays
Note
This module is part of the everpure.flasharray collection (version 1.46.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 everpure.flasharray.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: everpure.flasharray.purefa_volume.
New in everpure.flasharray 1.0.0
Synopsis
Create, delete or extend the capacity of a volume on Everpure FlashArray.
Requirements
The below requirements are needed on the host that executes this module.
python >= 3.3
purestorage >= 1.19
py-pure-client >= 1.88.0
netaddr
requests
pycountry
urllib3
Parameters
Parameter |
Comments |
|---|---|
A new volume will be added to the specified protection groups on creation |
|
FlashArray API token for admin privileged user. |
|
Bandwidth limit for volume in M or G units. M will set MB/s G will set GB/s To clear an existing QoS setting use 0 (zero) |
|
ID of the API Client that issues the identity token. Used with private_key_file. |
|
Name of fleet member on which to perform the operation. This requires the array receiving the request is a member of a fleet and the context name to be a member of the same fleet. Default: |
|
Number of volumes to be created in a multiple volume creation Only supported from Purity//FA v6.0.0 and higher |
|
Number of digits to use for multiple volume count. This will pad the index number with zeros where necessary Only supported from Purity//FA v6.0.0 and higher Range is between 1 and 10 Default: |
|
Disable insecure certificate warnings in debug logs Choices:
|
|
Define whether to eradicate the volume on delete or leave in trash. Choices:
|
|
FlashArray management IPv4 address or Hostname. |
|
A pre-signed JWT to authenticate with, as an alternative to api_token. The token is exchanged by the array for a short-lived access token. Requires a matching API Client to be registered on the array (see everpure.flasharray.purefa_apiclient). |
|
IOPs limit for volume - use value or K or M K will mean 1000 M will mean 1000000 To clear an existing IOPs setting use 0 (zero) |
|
The API Client’s trusted identity issuer registered on the array. Used with private_key_file. |
|
Key ID of the API Client that issues the identity token. Used with private_key_file. |
|
Move a volume in and out of a pod or vgroup Provide the name of pod or vgroup to move the volume to Pod and Vgroup names must be unique in the array To move to the local array, specify This is not idempotent - use |
|
The name of the volume. Volume could be created in a POD with this syntax POD_NAME::VOLUME_NAME. If the pod is in a realm use the syntax REALM_NAME::POD_NAME::VOLUME_NAME. Volume could be created in a volume group with this syntax VG_NAME/VOLUME_NAME. Multi-volume support available from Purity//FA 6.0.0 ***NOTE*** Manual deletion or eradication of individual volumes created using multi-volume will cause idempotency to fail Multi-volume support only exists for volume creation When copying with target, the name may also be a volume snapshot, including a protection group snapshot inside a pod, for example |
|
Define whether to overwrite a target volume if it already exists. Choices:
|
|
Name of existing, not deleted, protection group to add volume to Only application for volume(s) creation Superseded from Purity//FA 6.3.4 by add_to_pgs |
|
DMM Priority Adjustment operator Choices:
|
|
DMM Priority Adjustment value Choices:
|
|
Path to the PEM RSA private key used to sign an identity token, as an alternative to api_token. Requires client_id, key_id, issuer and username. |
|
Password protecting private_key_file, if encrypted. |
|
Promote or demote the volume so that the volume starts or stops accepting write requests. Choices:
|
|
Value to rename the specified volume to. Rename only applies to the container the current volumes is in. There is no requirement to specify the pod or vgroup name as this is implied. |
|
Volume size in M, G, T or P units. |
|
Number at which to start the multiple volume creation index Only supported from Purity//FA v6.0.0 and higher Default: |
|
Define whether the volume should exist or not. Choices:
|
|
Suffix string, if required, for multiple volume create Volume names will be formed as <name>#I<suffix>, where # is a placeholder for the volume index See associated descriptions Only supported from Purity//FA v6.0.0 and higher Default: |
|
The name of the target volume, if copying. The copy source name may be a volume or a volume snapshot. |
|
Username the issued token should be granted to. Must be a valid user on the array. Used with private_key_file. |
|
Whether to add the default container protection groups to those specified in add_to_pgs as the initial protection of a new volume. Choices:
|
Notes
Note
This module requires the
py-pure-clientPython library.Additional Python libraries may be required for specific modules.
You must set
PUREFA_URLandPUREFA_APIenvironment variables if fa_url and api_token arguments are not passed to the module directly.Token-based authentication (id_token, or private_key_file with client_id, key_id, issuer and username) may be used as an alternative to api_token, and requires a matching API Client registered on the array via everpure.flasharray.purefa_apiclient.
Examples
- name: Create new volume named foo with a QoS limit
everpure.flasharray.purefa_volume:
name: foo
size: 1T
bw_qos: 58M
iops_qos: 23K
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
state: present
- name: Create new volume named foo with a DMM priority (Purity//FA 6.1.2+)
everpure.flasharray.purefa_volume:
name: foo
size: 1T
priority_operator: +
priority_value: 10
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
state: present
- name: Create new volume named foo in protection group pg1 (this cannot be used with context)
everpure.flasharray.purefa_volume:
name: foo
pgroup: pg1
size: 1T
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
state: present
- name: Create 10 volumes with index starting at 10 but padded with 3 digits
everpure.flasharray.purefa_volume:
name: foo
size: 1T
suffix: bar
count: 10
start: 10
digits: 3
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
state: present
- name: Extend the size of an existing volume named foo
everpure.flasharray.purefa_volume:
name: foo
size: 2T
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
state: present
- name: Delete and eradicate volume named foo
everpure.flasharray.purefa_volume:
name: foo
eradicate: true
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
state: absent
- name: Create clone of volume bar named foo
everpure.flasharray.purefa_volume:
name: foo
target: bar
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
state: present
- name: Overwrite volume bar with volume foo
everpure.flasharray.purefa_volume:
name: foo
target: bar
overwrite: true
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
state: present
- name: Restore volume vol1 in pod ac-test from a protection group snapshot
everpure.flasharray.purefa_volume:
name: ac-test::hourly.drill1.vol1
target: ac-test::vol1
overwrite: true
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
state: present
- name: Clear volume QoS from volume foo
everpure.flasharray.purefa_volume:
name: foo
bw_qos: 0
iops_qos: 0
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
state: present
- name: Move local volume foo from local array to pod bar
everpure.flasharray.purefa_volume:
name: foo
move: bar
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
- name: Move volume foo in pod bar to local array
everpure.flasharray.purefa_volume:
name: bar::foo
move: local
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
- name: Move volume foo in pod bar to vgroup fin
everpure.flasharray.purefa_volume:
name: bar::foo
move: fin
fa_url: 10.10.10.2
api_token: e31060a7-21fc-e277-6240-25983c6c4592
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
|---|---|
A dictionary describing the changed volume. Only some attributes below will be returned with various actions. Returned: success |
|
Volume bandwidth limit in bytes/sec Returned: success |
|
Volume creation time Returned: success Sample: |
|
Volume IOPs limit Returned: success |
|
Volume name Returned: success |
|
Volume NVMe namespace globally unique identifier Returned: success Sample: |
|
Volume NAA canonical name Returned: success Sample: |
|
DMM Priority Adjustment operator Returned: success |
|
DMM Priority Adjustment value Returned: success |
|
Volume serial number Returned: success Sample: |
|
Volume size in bytes Returned: success |
|
Volume name of source volume used for volume copy Returned: success |