purestorage.flasharray.purefa_volume – Manage volumes on Pure Storage FlashArrays

Note

This plugin is part of the purestorage.flasharray collection (version 1.11.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 purestorage.flasharray.

To use it in a playbook, specify: purestorage.flasharray.purefa_volume.

New in version 1.0.0: of purestorage.flasharray

Synopsis

  • Create, delete or extend the capacity of a volume on Pure Storage FlashArray.

Requirements

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

  • python >= 2.7

  • purestorage >= 1.19

  • py-pure-client >= 1.6.0

  • netaddr

  • requests

Parameters

Parameter Choices/Defaults Comments
api_token
string
FlashArray API token for admin privileged user.
bw_qos
string
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)

aliases: qos
count
integer
Number of volumes to be created in a multiple volume creation
Only supported from Purity//FA v6.0.0 and higher
digits
integer
Default:
1
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
eradicate
boolean
    Choices:
  • no ←
  • yes
Define whether to eradicate the volume on delete or leave in trash.
fa_url
string
FlashArray management IPv4 address or Hostname.
iops_qos
string
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)
move
string
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 local
This is not idempotent - use ignore_errors in the play
name
string / required
The name of the volume.
Volume could be created in a POD with this syntax 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
overwrite
boolean
    Choices:
  • no ←
  • yes
Define whether to overwrite a target volume if it already exisits.
pgroup
string
added in 1.8.0 of purestorage.flasharray
Name of exisitng, not deleted, protection group to add volume to
Only application for volume(s) creation
rename
string
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.
size
string
Volume size in M, G, T or P units.
start
integer
Default:
0
Number at which to start the multiple volume creation index
Only supported from Purity//FA v6.0.0 and higher
state
string
    Choices:
  • absent
  • present ←
Define whether the volume should exist or not.
suffix
string
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
target
string
The name of the target volume, if copying.

Notes

Note

  • This module requires the purestorage and py-pure-client Python libraries

  • Additional Python librarues may be required for specific modules.

  • You must set PUREFA_URL and PUREFA_API environment variables if fa_url and api_token arguments are not passed to the module directly

Examples

- name: Create new volume named foo with a QoS limit
  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 in pod bar in protection group pg1
  purefa_volume:
    name: bar::foo
    prgoup: 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
  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
  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
  purefa_volume:
    name: foo
    eradicate: yes
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592
    state: absent

- name: Create clone of volume bar named foo
  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
  purefa_volume:
    name: foo
    target: bar
    overwrite: yes
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592
    state: present

- name: Clear volume QoS from volume foo
  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
  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
  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
  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 Returned Description
volume
dictionary
success
A dictionary describing the changed volume. Only some attributes below will be returned with various actions.

 
bandwidth_limit
integer
success
Volume bandwidth limit in bytes/sec

 
created
string
success
Volume creation time

Sample:
2019-03-13T22:49:24Z
 
iops_limit
integer
success
Volume IOPs limit

 
name
string
success
Volume name

 
nvme_nguid
string
success
Volume NVMe namespace globally unique identifier

Sample:
eui.00cd6b99ef25864724a937c5000be684
 
page83_naa
string
success
Volume NAA canonical name

Sample:
naa.624a9370361019ecace43db3000120a4
 
serial
string
success
Volume serial number

Sample:
361019ECACE43D83000120A4
 
size
integer
success
Volume size in bytes

 
source
string
success
Volume name of source volume used for volume copy



Authors