everpure.flasharray.purefa_network module – Manage network interfaces in a Everpure FlashArray

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

New in everpure.flasharray 1.0.0

Synopsis

  • This module manages the physical and virtual network interfaces on a Everpure FlashArray.

  • To manage VLAN interfaces use the everpure.flasharray.purefa_vlan module.

  • To manage network subnets use the everpure.flasharray.purefa_subnet module.

  • To remove an IP address from a non-management port use 0.0.0.0/0

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

address

string

IPv4 or IPv6 address of interface in CIDR notation.

To remove an IP address from a non-management port use 0.0.0.0/0

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.

disable_warnings

boolean

added in everpure.flasharray 1.29.0

Disable insecure certificate warnings in debug logs

Choices:

  • false ← (default)

  • true

enabled

boolean

added in everpure.flasharray 1.22.0

State of the network interface

Choices:

  • false

  • true ← (default)

fa_url

string

FlashArray management IPv4 address or Hostname.

gateway

string

IPv4 or IPv6 address of interface gateway.

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

interface

string

added in everpure.flasharray 1.22.0

Type of interface to create if subinterfaces is supplied

Choices:

  • "vif"

  • "lacp"

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.

mtu

integer

MTU size of the interface. Range is 1280 to 9216.

name

string / required

Interface name (physical or virtual).

Newer Purity releases store a virtual interface that is attached to a file server under the server’s name, as <server>::<name>, and report it that way. Such an interface may be given here either as the bare <name> it was created with or as the <server>::<name> the array reports. With the bare name, server picks the file server when it is given, otherwise the interface is matched under whichever file server it is attached to.

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.

server

string

added in everpure.flasharray 1.46.0

Name of the file server the interface is attached to for data ingress.

An Ethernet interface can be attached to at most one file server. File servers themselves are managed by everpure.flasharray.purefa_server.

Omit this to leave the attachment alone. A newly created interface is then attached to the array’s default _array_server, which is what the array does when the attachment is not specified.

Set to an empty string to attach the interface to no file server at all, which detaches an existing interface from the server it is on.

Only applies to Ethernet interfaces.

servicelist

list / elements=string

added in everpure.flasharray 1.15.0

Assigns the specified (comma-separated) service list to one or more specified interfaces.

Replaces the previous service list.

Supported service lists depend on whether the network interface is Ethernet or Fibre Channel.

Note that system is only valid for Cloud Block Store.

Choices:

  • "replication"

  • "management"

  • "ds"

  • "file"

  • "iscsi"

  • "scsi-fc"

  • "nvme-fc"

  • "nvme-tcp"

  • "nvme-roce"

  • "system"

state

string

State of existing interface (on/off).

Choices:

  • "present" ← (default)

  • "absent"

subinterfaces

list / elements=string

added in everpure.flasharray 1.22.0

List of one or more child devices to be added to a VIF interface

Only the ‘eth’ name needs to be provided, such as ‘eth6’. This interface on all controllers will be assigned to the interface.

subnet

string

added in everpure.flasharray 1.22.0

Name of the subnet which interface is to be attached

subordinates

list / elements=string

added in everpure.flasharray 1.22.0

List of one or more child devices to be added to a LACP interface

Subordinates must be on the same controller, therefore the full device needs to be provided.

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

  • server requires Purity//FA REST API 2.44 or higher, which is where file servers first appear.

  • server attaches only the interface it is given. To manage the full set of interfaces a file server is reachable on, use the network_interfaces option of everpure.flasharray.purefa_server, which is declarative and detaches any interface it is not given.

  • 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: Configure and enable network interface ct0.eth8
  everpure.flasharray.purefa_network:
    name: ct0.eth8
    gateway: 10.21.200.1
    address: "10.21.200.18/24"
    mtu: 9000
    state: present
    fa_url: 10.10.10.2
    api_token: c6033033-fe69-2515-a9e8-966bb7fe4b40

- name: Disable physical interface ct1.eth2
  everpure.flasharray.purefa_network:
    name: ct1.eth2
    state: absent
    fa_url: 10.10.10.2
    api_token: c6033033-fe69-2515-a9e8-966bb7fe4b40

- name: Enable virtual network interface vir0
  everpure.flasharray.purefa_network:
    name: vir0
    state: present
    fa_url: 10.10.10.2
    api_token: c6033033-fe69-2515-a9e8-966bb7fe4b40

- name: Remove an IP address from iSCSI interface ct0.eth4
  everpure.flasharray.purefa_network:
    name: ct0.eth4
    address: 0.0.0.0/0
    gateway: 0.0.0.0
    fa_url: 10.10.10.2
    api_token: c6033033-fe69-2515-a9e8-966bb7fe4b40

- name: Change service list for FC interface ct0.fc1
  everpure.flasharray.purefa_network:
    name: ct0.fc1
    servicelist:
      - replication
    fa_url: 10.10.10.2
    api_token: c6033033-fe69-2515-a9e8-966bb7fe4b40

- name: Create a file VIF attached to a file server
  everpure.flasharray.purefa_network:
    name: filevif1
    interface: vif
    subinterfaces:
      - eth6
    address: "10.21.200.30/24"
    gateway: 10.21.200.1
    server: filesvr1
    servicelist:
      - file
    fa_url: 10.10.10.2
    api_token: c6033033-fe69-2515-a9e8-966bb7fe4b40

- name: Detach a file VIF from the file server it is attached to
  everpure.flasharray.purefa_network:
    name: filevif1
    server: ""
    fa_url: 10.10.10.2
    api_token: c6033033-fe69-2515-a9e8-966bb7fe4b40

Authors

  • Everpure Ansible Team (@sdodsley)