purestorage.flasharray.purefa_pg – Manage protection groups 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_pg.

New in version 1.0.0: of purestorage.flasharray

Synopsis

  • Create, delete or modify protection groups on Pure Storage FlashArrays.

  • If a protection group exists and you try to add non-valid types, eg. a host to a volume protection group the module will ignore the invalid types.

  • Protection Groups on Offload targets are supported.

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.
enabled
boolean
    Choices:
  • no
  • yes ←
Define whether to enabled snapshots for the protection group.
eradicate
boolean
    Choices:
  • no ←
  • yes
Define whether to eradicate the protection group on delete and leave in trash.
fa_url
string
FlashArray management IPv4 address or Hostname.
host
list / elements=string
List of existing hosts to add to protection group.
Note that hostnames are case-sensitive however FlashArray hostnames are unique and ignore case - you cannot have hosta and hostA
hostgroup
list / elements=string
List of existing hostgroups to add to protection group.
Note that hostgroups are case-sensitive however FlashArray hostgroup names are unique and ignore case - you cannot have groupa and groupA
pgroup
string / required
The name of the protection group.
rename
string
Rename a protection group
If the source protection group is in a Pod or Volume Group 'container' you only need to provide the new protection group name in the same 'container'
state
string
    Choices:
  • absent
  • present ←
Define whether the protection group should exist or not.
target
list / elements=string
List of remote arrays or offload target for replication protection group to connect to.
Note that all replicated protection groups are asynchronous.
Target arrays or offload targets must already be connected to the source array.
Maximum number of targets per Portection Group is 4, assuming your configuration suppors this.
volume
list / elements=string
List of existing volumes to add to protection group.
Note that volume are case-sensitive however FlashArray volume names are unique and ignore case - you cannot have volumea and volumeA

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 local protection group
  purefa_pg:
    pgroup: foo
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Create new protection group called bar in pod called foo
  purefa_pg:
    pgroup: "foo::bar"
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Create new replicated protection group
  purefa_pg:
    pgroup: foo
    target:
      - arrayb
      - arrayc
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Create new replicated protection group to offload target and remote array
  purefa_pg:
    pgroup: foo
    target:
      - offload
      - arrayc
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Create new protection group with snapshots disabled
  purefa_pg:
    pgroup: foo
    enabled: false
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Delete protection group
  purefa_pg:
    pgroup: foo
    eradicate: true
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592
    state: absent

- name: Eradicate protection group foo on offload target where source array is arrayA
  purefa_pg:
    pgroup: "arrayA:foo"
    target: offload
    eradicate: true
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592
    state: absent

- name: Rename protection group foo in pod arrayA to bar
  purefa_pg:
    pgroup: "arrayA::foo"
    rename: bar
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Create protection group for hostgroups
  purefa_pg:
    pgroup: bar
    hostgroup:
      - hg1
      - hg2
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Create protection group for hosts
  purefa_pg:
    pgroup: bar
    host:
      - host1
      - host2
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Create replicated protection group for volumes
  purefa_pg:
    pgroup: bar
    volume:
      - vol1
      - vol2
    target: arrayb
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

Authors