everpure.flasharray.purefa_host module – Manage hosts 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_host.

New in everpure.flasharray 1.0.0

Synopsis

  • Create, delete or modify hosts on Everpure FlashArrays.

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

added in everpure.flasharray 1.33.0

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

count

integer

Number of hosts to be created in a multiple host creation

Only supported from Purity//FA v6.0.0 and higher

digits

integer

Number of digits to use for multiple host 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: 1

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.

host_password

string

Sets the host password for CHAP authentication

Password length between 12 and 255 characters

To clear the username/password pair use clear as the password

SETTING A PASSWORD IS NON-IDEMPOTENT

host_user

string

Sets the host user name for CHAP authentication

Required with host_password

To clear the username/password pair use clear as the password

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

iqn

list / elements=string

List of IQNs of the host.

This is the complete desired set of IQNs; the host is reconciled to match it, adding and removing IQNs as needed.

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.

lun

integer

LUN ID to assign to volume for host. Must be unique.

If not provided the ID will be automatically assigned.

Range for LUN ID is 1 to 4095.

modify_resource_access

string

added in everpure.flasharray 1.35.0

Describes how to modify a resource accesses of a resource when that resource is moved.

The none value indicates that no resource access should be modified.

The create value is used when a resource is moving out of a realm into the array and it needs to create a resource access of the moved resource to the realm from which it is moving.

The delete value is used when a resource that is moving from an array into a realm already has a resource access into that realm.

Choices:

  • "none" ← (default)

  • "create"

  • "delete"

move

list / elements=string

added in everpure.flasharray 1.35.0

Move a host in and out of a local member realm(s) or local array

Provide the name of realm(s) to move to

To move to the local array, specify local

Host cannot have connected volume(s) for move operation

name

aliases: host

string / required

The name of the host.

Note that hostnames are case-sensitive however FlashArray hostnames are unique and ignore case - you cannot have hosta and hostA

Multi-host support available from Purity//FA 6.0.0 ***NOTE*** Manual deletion of individual hosts created using multi-host will cause idempotency to fail

Multi-host support only exists for host creation

nqn

list / elements=string

List of NQNs of the host. Note that NMVe hosts can only possess NQNs.

This is the complete desired set of NQNs; the host is reconciled to match it, adding and removing NQNs as needed. Multi-protocol is not allowed for these hosts.

personality

string

Define which operating system the host is. Recommended for ActiveCluster integration.

The nutanix-mgmt and nutanix-cluster personalities are only supported from REST API 2.50 and higher.

Choices:

  • "hpux"

  • "vms"

  • "aix"

  • "esxi"

  • "solaris"

  • "hitachi-vsp"

  • "oracle-vm-server"

  • "nutanix-mgmt"

  • "nutanix-cluster"

  • "delete"

  • "" ← (default)

preferred_array

list / elements=string

List of preferred arrays in an ActiveCluster environment.

To remove existing preferred arrays from the host, specify delete.

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.

protocol

string

Defines the host connection protocol for volumes.

DEPRECATED No longer a necessary parameter

Choices:

  • "fc"

  • "iscsi"

  • "nvme"

  • "mixed"

rename

string

The name to rename to.

Note that hostnames are case-sensitive however FlashArray hostnames are unique and ignore case - you cannot have hosta and hostA

start

integer

Number at which to start the multiple host creation index

Only supported from Purity//FA v6.0.0 and higher

Default: 0

state

string

Define whether the host should exist or not.

When removing host all connected volumes will be disconnected.

Choices:

  • "absent"

  • "present" ← (default)

suffix

string

Suffix string, if required, for multiple host create

Host names will be formed as <name>#<suffix>, where # is a placeholder for the host index See associated descriptions

Suffix string is optional

Only supported from Purity//FA v6.0.0 and higher

target_password

string

Sets the target password for CHAP authentication

Password length between 12 and 255 characters

To clear the username/password pair use clear as the password

SETTING A PASSWORD IS NON-IDEMPOTENT

target_user

string

Sets the target user name for CHAP authentication

Required with target_password

To clear the username/password pair use clear as the password

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.

vlan

string

added in everpure.flasharray 1.16.0

The VLAN ID that the host is associated with.

If not set or set to any, the host can access any VLAN.

If set to untagged, the host can only access untagged VLANs.

If set to a number between 1 and 4094, the host can only access the specified VLAN with that number.

volume

string

Volume name to map to the host.

wwns

list / elements=string

List of wwns of the host.

This is the complete desired set of WWNs. The host is reconciled to match it, adding any that are missing and removing any that are not listed, so a single WWN can be removed by simply omitting it from the list.

WWNs in the FlashArray OUI (52:4A:93) are rejected by the array with “Cannot specify a FlashArray WWN”; use the initiator’s own WWN.

Notes

Note

  • If specifying lun option ensure host support requested value

  • 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: Create new AIX host
  everpure.flasharray.purefa_host:
    name: foo
    personality: aix
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Create host bar in existing realm foo
  everpure.flasharray.purefa_host:
    name: foo::bar
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Create 10 hosts with index starting at 10 but padded with 3 digits
  everpure.flasharray.purefa_host:
    name: foo
    personality: vms
    suffix: bar
    count: 10
    start: 10
    digits: 3
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592
    state: present

- name: Rename host foo to bar
  everpure.flasharray.purefa_host:
    name: foo
    rename: bar
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Delete host
  everpure.flasharray.purefa_host:
    name: foo
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592
    state: absent

- name: Make host bar with wwn ports
  everpure.flasharray.purefa_host:
    name: bar
    wwns:
      - 00:00:00:00:00:00:00:00
      - 11:11:11:11:11:11:11:11
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Make host bar with iSCSI ports
  everpure.flasharray.purefa_host:
    name: bar
    iqn:
      - iqn.1994-05.com.redhat:7d366003913
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Make host bar with NVMe ports
  everpure.flasharray.purefa_host:
    name: bar
    nqn:
      - nqn.2014-08.com.vendor:nvme:nvm-subsystem-sn-d78432
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Make mixed protocol host
  everpure.flasharray.purefa_host:
    name: bar
    iqn:
      - iqn.1994-05.com.redhat:7d366003914
    wwns:
      - 00:00:00:00:00:00:00:01
      - 11:11:11:11:11:11:11:12
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Map host foo to volume bar as LUN ID 12
  everpure.flasharray.purefa_host:
    name: foo
    volume: bar
    lun: 12
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Disconnect volume bar from host foo
  everpure.flasharray.purefa_host:
    name: foo
    volume: bar
    state: absent
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Add preferred arrays to host foo
  everpure.flasharray.purefa_host:
    name: foo
    preferred_array:
      - array1
      - array2
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Delete preferred arrays from host foo
  everpure.flasharray.purefa_host:
    name: foo
    preferred_array: delete
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Delete existing WWNs from host foo (does not delete host object)
  everpure.flasharray.purefa_host:
    name: foo
    wwns: ""
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Set CHAP target and host username/password pairs
  everpure.flasharray.purefa_host:
    name: foo
    target_user: user1
    target_password: passwrodpassword
    host_user: user2
    host_password: passwrodpassword
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Delete CHAP target and host username/password pairs
  everpure.flasharray.purefa_host:
    name: foo
    target_user: user
    target_password: clear
    host_user: user
    host_password: clear
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Move host foo from the array to realm bar
  everpure.flasharray.purefa_host:
    name: foo
    move: bar
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Move host foo from realm bar back to array
  everpure.flasharray.purefa_host:
    name: bar::foo
    move: local
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

- name: Rename host foo in realm test to bar
  everpure.flasharray.purefa_host:
    name: test::foo
    rename: test::bar
    fa_url: 10.10.10.2
    api_token: e31060a7-21fc-e277-6240-25983c6c4592

Authors

  • Everpure Ansible Team (@sdodsley)