everpure.flasharray.purefa_tags module – Manage Everpure FlashArray resource tags

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

New in everpure.flasharray 1.45.0

Synopsis

  • Add, change and remove key/value tags on Everpure FlashArray resources.

  • One module covers every taggable resource type. Which type is being tagged is given by resource_type, and the resource itself by name.

  • Volumes are covered here too. The older everpure.flasharray.purefa_volume_tags still works and is unchanged, but this module supersedes it and is the one to use from now on.

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

api_token

string

FlashArray API token for admin privileged user.

client_id

string

added in everpure.flasharray 1.43.0

ID of the API Client that issues the identity token.

Used with private_key_file.

context

string

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: ""

copyable

boolean

Whether the tag is inherited by copies of the resource.

Only the volume family honours this. The array accepts it for the other resource types and silently stores true regardless, so it is only compared, and only reported as a change, for volume, volume_group and volume_snapshot.

Omit it to let the array use its own default.

Choices:

  • false

  • true

disable_warnings

boolean

added in everpure.flasharray 1.29.0

Disable insecure certificate warnings in debug logs

Choices:

  • false ← (default)

  • true

fa_url

string

FlashArray management IPv4 address or Hostname.

id_token

string

added in everpure.flasharray 1.43.0

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

issuer

string

added in everpure.flasharray 1.43.0

The API Client’s trusted identity issuer registered on the array.

Used with private_key_file.

key_id

string

added in everpure.flasharray 1.43.0

Key ID of the API Client that issues the identity token.

Used with private_key_file.

keys

list / elements=string

List of tag keys to remove, for use with state=absent.

Takes precedence over the keys in kvp.

kvp

list / elements=string

List of key value pairs to set on the resource.

Separate the key from the value using a colon (:) only.

Required when state=present.

With state=absent and no keys, the keys of these pairs are the tags removed, and their values are ignored.

name

string

Name of the resource to tag.

Required for every resource_type except array, which is the array the module is talking to.

namespace

string

The tag namespace to work in.

Namespaces are independent - the same key can hold a different value in each, and a tag is only ever read, written or removed in the namespace named here.

Default: "default"

private_key_file

string

added in everpure.flasharray 1.43.0

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.

private_key_password

string

added in everpure.flasharray 1.43.0

Password protecting private_key_file, if encrypted.

resource_type

string / required

The kind of resource to tag.

array tags the array itself and takes no name.

Each type became taggable in a different Purity//FA release, so the module checks the REST version for the type requested rather than one version for all of them.

Choices:

  • "array"

  • "host"

  • "host_group"

  • "pod"

  • "protection_group"

  • "protection_group_snapshot"

  • "realm"

  • "volume"

  • "volume_group"

  • "volume_snapshot"

  • "workload"

state

string

Define whether the tags should exist or not.

Choices:

  • "absent"

  • "present" ← (default)

username

string

added in everpure.flasharray 1.43.0

Username the issued token should be granted to.

Must be a valid user on the array. Used with private_key_file.

Notes

Note

  • The minimum Purity//FA REST version depends on resource_type - volume and volume_snapshot from 2.2, array, host and host_group from 2.34, pod, protection_group and volume_group from 2.39, workload from 2.40, realm from 2.41 and protection_group_snapshot from 2.44.

  • Tagging a resource that does not exist fails with the array’s own message, which names the resource type.

  • Cloud provider tags, which propagate to the cloud a Cloud Block Store instance runs in, are a separate namespace of their own and are not managed here.

  • This module requires the py-pure-client Python library.

  • Additional Python libraries 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.

  • 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: Tag host foo
  everpure.flasharray.purefa_tags:
    resource_type: host
    name: foo
    kvp:
      - env:production
      - owner:infra
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Tag the array itself
  everpure.flasharray.purefa_tags:
    resource_type: array
    kvp:
      - site:london
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Tag a volume group so copies inherit the tag
  everpure.flasharray.purefa_tags:
    resource_type: volume_group
    name: bar
    kvp:
      - backup:nightly
    copyable: true
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Tag a protection group in its own namespace
  everpure.flasharray.purefa_tags:
    resource_type: protection_group
    name: pgroup1
    namespace: reporting
    kvp:
      - tier:gold
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Tag a volume, replacing what purefa_volume_tags did
  everpure.flasharray.purefa_tags:
    resource_type: volume
    name: foo
    kvp:
      - env:production
    copyable: true
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Remove two tags from host foo
  everpure.flasharray.purefa_tags:
    resource_type: host
    name: foo
    keys:
      - env
      - owner
    state: absent
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

Authors

  • Everpure Ansible Team (@sdodsley)