Skip to content

Latest commit

 

History

History
9485 lines (9124 loc) · 393 KB

Product Guide.md

File metadata and controls

9485 lines (9124 loc) · 393 KB

Ansible Modules for Dell EMC PowerStore

Product Guide 1.4.0

© 2021 Dell Inc. or its subsidiaries. All rights reserved. Dell, EMC, and other trademarks are trademarks of Dell Inc. or its subsidiaries. Other trademarks may be trademarks of their respective owners.


Contents


Certificate Module

Certificate operations on PowerStore Storage System

Synopsis

Supports the provisioning operations on a Certificate such as add/import, modify, reset, exchange and get the details of a certificate.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
is_current bool
Indicates whether this is the current X509 certificate to be used by the service or this X509 Certificate will be used in the future.
certificate_id str
Unique identifier of the certificate.
Mandatory only for modify operation.
remote_port int
The port address of the remote cluster.
state str True
  • absent
  • present

Define whether the certificate should exist or not.
remote_address str
IPv4 or DNS name of the remote cluster.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
certificate_type str
  • Server
  • Client
  • CA_Client_Validation
  • CA_Server_Validation

Type of the certificate.
certificate str
Concatenated PEM encoded x509_certificate string from end-entity certificate to root certificate.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
user str True
The username of the PowerStore host.
scope str
Defines a subset of certificates belonging to one Service.
password str True
The password of the PowerStore host.
service str
  • Management_HTTP
  • Replication_HTTP
  • VASA_HTTP
  • Import_HTTP
  • LDAP_HTTP
  • Syslog_HTTP

Type of the service for which the certificate is used.
Mandatory for reset and exchange operation.
remote_password str
The password of the remote cluster.
array_ip str True
IP or FQDN of the PowerStore management system.
remote_user str
The username of the remote cluster.

Notes

  • Idempotency is not supported for adding/importing certificates, exchange of certificates and the reset of certificates.
  • Only is_current parameter is supported for modification of certificate.
  • Reset operation can reset more than one certificate at a time.
  • Add/import, modify and reset are supported for PowerStore versions 2.0 and above only.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Get details of certificate with certificate_id
  certificate:
    array_ip: "{{array_ip}}"
    user: "{{user}}"
    password: "{{password}}"
    verifycert: "{{verifycert}}"
    certificate_id: "e940144f-393f-4e9c-8f54-9a4d57b38c48"
    state: "present"

- name: Reset certificates
  certificate:
    array_ip: "{{array_ip}}"
    user: "{{user}}"
    password: "{{password}}"
    verifycert: "{{verifycert}}"
    service: "VASA_HTTP"
    state: "present"

- name: Exchange certificates
  certificate:
    array_ip: "{{array_ip}}"
    user: "{{user}}"
    password: "{{password}}"
    verifycert: "{{verifycert}}"
    service: "Replication_HTTP"
    remote_address: "{{remote_array_ip}}"
    remote_port: 443
    remote_user: "{{remote_user}}"
    remote_password: "{{remote_password}}"
    state: "present"

- name: Add/import a certificate
  certificate:
    array_ip: "{{array_ip}}"
    user: "{{user}}"
    password: "{{password}}"
    verifycert: "{{verifycert}}"
    certificate_type: "CA_Client_Validation"
    service: "VASA_HTTP"
    certificate: "{{certificate_string}}"
    is_current: True
    state: "present"

- name: Modify certificate
  certificate:
    array_ip: "{{array_ip}}"
    user: "{{user}}"
    password: "{{password}}"
    verifycert: "{{verifycert}}"
    certificate_id: "37b76535-612b-456a-a694-1389f17632c7"
    is_current: True
    state: "present"

Return Values

Key Type Returned Description
changed bool always Whether or not the resource has changed
certificate_details complex When certificate exists Details of the certificate
  type str success Type of the certificate.
  members complex success Member certificates included in this x509_certificate.
    thumbprint_algorithm str success The thumbprint algorithm.
    subject str success Certificate subject or so called distinguished name.
    depth str success Depth indicates the position of this member certificate in the X509 Certificate chain.
    certificate str success Base64 encoded certificate without any line breaks.
    thumbprint str success CeHash value of the certificate.
    signature_algorithm str success Certificate signature algorithm.
    thumbprint_algorithm_l10n str success Localized message string corresponding to thumbprint_algorithm.
    valid_to str success Date and time when the certificate will expire.
    public_key_algorithm str success Public key algorithm used to generate the key pair.
    valid_from str success Date and time when the certificate becomes valid.
    serial_number str success Certificate serial number.
    subject_alternative_names list success Additional DNS names or IP addresses in the x509_certificate.
    issuer str success Distinguished name of the certificate issuer.
    key_length int success Private key length.
  service str success Type of the service for which the certificate is used.
  type_l10n str success Localized message string corresponding to type.
  service_l10n str success Localized message string corresponding to service.
  is_current bool success Whether the certificate can be used now or not.
  is_valid bool success Indicates whether this is a valid X509 certificate.
  id str success The system generated ID given to the certificate.

Authors


Cluster Module

Manage cluster related opeartions on PowerStore.

Synopsis

Managing cluster on PowerStore storage system includes getting details and modifying cluster configuration parameters.

Parameters

Parameter Type Required Default Choices Description
cluster_name str
The Name of cluster.
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
chap_mode str
  • Disabled
  • Single
  • Mutual

The mode that describes or sets the iSCSI CHAP mode for the cluster.
is_ssh_enabled bool
Whether SSH access is enabled for the cluster.
Either appliance_id or appliance_name is to be passed along with is_ssh_enabled.
appliance_id str
ID of the appliance.
appliance_id and appliance_name are mutually exclusive.
is_ssh_enabled has to be passed along with appliance_id.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
appliance_name str
Name of the appliance.
appliance_id and appliance_name are mutually exclusive.
is_ssh_enabled has to be passed along with appliance_name.
service_password str
The password for the service user.
new_name str
The new name for the cluster.
array_ip str True
IP or FQDN of the PowerStore management system.
password str True
The password of the PowerStore host.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
physical_mtu int
MTU for ethernet ports in the cluster.
The MTU can be set between 1500 to 9000.
cluster_id str
Id of the cluster.
state str True
  • absent
  • present

Define whether the cluster should exist or not.
present indicates that the cluster should exist on the system.
absent indicates that the cluster should not exist on the system.
user str True
The username of the PowerStore host.

Notes

  • Creation and deletion of cluster is not supported by ansible modules.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: get the details of cluster using id
  cluster:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    cluster_id: "0"
    state: "present"

- name: Modify details of cluster using the name
  cluster:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    cluster_name: "RT-D1320"
    appliance_id: "A1"
    is_ssh_enabled: True
    service_password: "S@mple_password"
    chap_mode: "Disabled"
    new_name: "new_RT-D1320"
    state: "present"

Return Values

Key Type Returned Description
changed bool always Whether or not the resource has changed
cluster_details complex When Cluster exists. The cluster details.
  master_appliance_id str success The unique identifier of the appliance acting as primary. This parameter is deprecated in version 2.0.0.0.
  appliance_details complex success Name and Id of the appliance for which is_ssh_enabled parameter is used.
    id str success Id of the appliance.
    name str success Name of the appliance.
  is_ssh_enabled bool success Whether or not the ssh is enabled.
  is_encryption_enabled bool success Whether or not Data at Rest Encryption is enabled on the cluster.
  id str success The ID of the cluster.
  storage_discovery_address str success The floating storage discovery IP address for the cluster in IPv4 or IPv6 format.
  system_time str success Current clock time for the system. System time and all the system reported times are in UTC (GMT+0:00) format.
  service_user_details complex success Details of the service user for which the password can be updated.
    is_default_password bool success Whether the service user has default password or not.
    is_built_in bool success Whether the service user is built in or not.
    id str success Id of the service user.
    name str success Name of the service user.
  state str success Possible cluster states.
  global_id str success The global unique identifier of the cluster.
  primary_appliance_id str success The unique identifier of the appliance acting as primary. This parameter was added in version 2.0.0.0.
  service_config_details complex success Details of the service config for the entered appliance.
    is_ssh_enabled bool success Whether the ssh is enabled for the appliance or not.
    appliance_id str success Id of the appliance for which the service configuration exists.
    id str success Id of the service configuration.
  name str success Name of the cluster.
  appliance_count int success Number of appliances configured in this cluster.
  management_address str success The floating management IP address for the cluster in IPv4 or IPv6 format.
  physical_mtu int success MTU for the cluster.
  compatibility_level int success The behavioral version of the software version API, It is used to ensure the compatibility across potentially different software versions.

Authors


File System Module

Filesystem operations on PowerStore Storage system

Synopsis

Supports the provisioning operations on a filesystem such as create, modify, delete and get the details of a filesystem.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
size int
Size that the file system presents to the host or end user. Mandatory only for create operation.
access_policy str
  • NATIVE
  • UNIX
  • WINDOWS

File system security access policies.
description str
Description of the file system.
folder_rename_policy str
  • ALL_ALLOWED
  • SMB_FORBIDDEN
  • ALL_FORBIDDEN

File system folder rename policies for the file system with multi-protocol access enabled.
ALL_ALLOWED - All protocols are allowed to rename directories without any restrictions.
SMB_FORBIDDEN - A directory rename from the SMB protocol will be denied if at least one file is opened in the directory or in one of its child directories.
All_FORBIDDEN - Any directory rename request will be denied regardless of the protocol used, if at least one file is opened in the directory or in one of its child directories.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
password str True
The password of the PowerStore host.
locking_policy str
  • ADVISORY
  • MANDATORY

File system locking policies. ADVISORY- No lock checking for NFS and honor SMB lock range only for SMB. MANDATORY- Honor SMB and NFS lock range.
filesystem_name str
Name of the file system. Mutually exclusive with filesystem_id. Mandatory only for create operation.
cap_unit str
  • GB
  • TB

capacity unit for the size.
It defaults to 'GB', if not specified.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
quota_defaults dict
Contains the default attributes for a filesystem quota.It contains below optional candidate variables.
  default_hard_limit int False
Default hard limit of user quotas and tree quotas.
  grace_period_unit str False
  • days
  • weeks
  • months

Unit of the grace period of soft limit.
  default_soft_limit int False
Default soft limit of user quotas and tree quotas.
  grace_period int False
Grace period of soft limit.
  cap_unit str False
  • GB
  • TB

Capacity unit for default hard & soft limit.
nas_server str
Name or ID of the NAS Server on which the file system is created. Mandatory parameter whenever filesystem_name is provided, since filesystem names are unique only within a NAS server
array_ip str True
IP or FQDN of the PowerStore management system.
protection_policy str
Name or ID of the protection policy applied to the file system.
Specifying "" (empty string) removes the existing protection policy from file system.
state str True
  • absent
  • present

Define whether the filesystem should exist or not.
filesystem_id str
Unique id of the file system. Mutually exclusive with filesystem_name.
smb_properties dict
Advance settings for SMB. It contains below optional candidate variables
  is_smb_notify_on_write_enabled bool False
Indicates whether file write notifications are enabled on the file system
  is_smb_no_notify_enabled bool False
Indicates whether notifications of changes to directory file structure are enabled.
  is_smb_op_locks_enabled bool False
Indicates whether opportunistic file locking is enabled on the file system.
  smb_notify_on_change_dir_depth int False
Integer variable , determines the lowest directory level to which the enabled notifications apply. minimum value is 1.
  is_smb_sync_writes_enabled bool False
Indicates whether the synchronous writes option is enabled on the file system.
  is_smb_notify_on_access_enabled bool False
Indicates whether file access notifications are enabled on the file system.
user str True
The username of the PowerStore host.

Notes

  • It is recommended to remove the protection policy before deleting the filesystem.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

 - name: Create FileSystem by Name
   register: result_fs
   filesystem:
     array_ip: "{{array_ip}}"
     verifycert: "{{verifycert}}"
     user: "{{user}}"
     password: "{{password}}"
     filesystem_name: "{{filesystem_name}}"
     description: "{{description}}"
     nas_server: "{{nas_server_id}}"
     size: "5"
     cap_unit: "GB"
     access_policy: "UNIX"
     locking_policy: "MANDATORY"
     smb_properties:
       is_smb_no_notify_enabled: True
       is_smb_notify_on_access_enabled: True
     quota_defaults:
       grace_period: 1
       grace_period_unit: 'days'
       default_hard_limit: 3
       default_soft_limit: 2
     protection_policy: "{{protection_policy_id}}"
     state: "present"

 - name: Modify File System by id
   filesystem:
     array_ip: "{{array_ip}}"
     verifycert: "{{verifycert}}"
     user: "{{user}}"
     password: "{{password}}"
     filesystem_id: "{{fs_id}}"
     folder_rename_policy: "ALL_ALLOWED"
     smb_properties:
       is_smb_op_locks_enabled: True
       smb_notify_on_change_dir_depth: 3
     quota_defaults:
       grace_period: 2
       grace_period_unit: 'weeks'
       default_hard_limit: 2
       default_soft_limit: 1
     state: "present"

 - name: Get File System details by id
   filesystem:
     array_ip: "{{array_ip}}"
     verifycert: "{{verifycert}}"
     user: "{{user}}"
     password: "{{password}}"
     filesystem_id: "{{result_fs.filesystem_details.id}}"
     state: "present"

 - name: Delete File System by id
   filesystem:
     array_ip: "{{array_ip}}"
     verifycert: "{{verifycert}}"
     user: "{{user}}"
     password: "{{password}}"
     filesystem_id: "{{result_fs.filesystem_details.id}}"
     state: "absent"

Return Values

Key Type Returned Description
filesystem_details complex When filesystem exists Details of the filesystem
  snapshots list success Id and name of the snapshots of a filesystem.
  size_total int success Total size of the filesystem in bytes.
  is_smb_op_locks_enabled bool success Whether smb op lock is enabled.
  used_size_with_unit str success Used size of the filesystem with appropriate unit.
  access_policy str success Access policy about the filesystem.
  protection_policy dict success Id and name of the protection policy associated with the filesystem.
  total_size_with_unit str success Total size of the filesystem with appropriate unit.
  id str success The system generated ID given to the filesystem.
  locking_policy str success Locking policy about the filesystem.
  grace_period int success Default grace period for a filesystem quota in second.
  default_hard_limit int success Default hard limit period for a filesystem quota in byte.
  is_smb_no_notify_enabled bool success Whether smb notify policy is enabled for a filesystem.
  default_soft_limit int success Default soft limit period for a filesystem quota in byte.
  name str success Name of the filesystem.
  is_smb_notify_on_access_enabled bool success Whether smb on access notify policy is enabled.
  description str success The description about the filesystem.
  size_used int success Used size of the filesystem in bytes.
  nas_server dict success Id and name of the nas server to which the filesystem belongs.
changed bool always Whether or not the resource has changed

Authors


Filesystem Snapshot Module

Manage Filesystem Snapshots on Dell EMC PowerStore

Synopsis

Managing filesystem snapshots on PowerStore Storage System includes creating new filesystem snapshot, getting details of filesystem snapshot, modifying attributes of filesystem snapshot and deleting filesystem snapshot.

Parameters

Parameter Type Required Default Choices Description
expiration_timestamp str
The expiration timestamp of the snapshot. This should be provided in UTC format, e.g 2020-07-24T10:54:54Z.
To remove the expiration timestamp, specify it as an empty string.
retention_unit str hours
  • hours
  • days

The unit for retention.
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
description str
The description for the filesystem snapshot.
array_ip str True
IP or FQDN of the PowerStore management system.
snapshot_name str
The name of the filesystem snapshot.
Mandatory for create operation.
Specify either snapshot name or ID (but not both) for any operation.
state str True
  • absent
  • present

Define whether the filesystem snapshot should exist or not.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
nas_server str
The NAS server, this could be the name or ID of the NAS server.
password str True
The password of the PowerStore host.
desired_retention int
The retention value for the Snapshot.
If the desired_retention/expiration_timestamp is not mentioned during creation, snapshot will be created with unlimited retention.
Maximum supported desired retention is 31 days.
snapshot_id str
The ID of the Snapshot.
access_type str
  • SNAPSHOT
  • PROTOCOL

Specifies whether the snapshot directory or protocol access is granted to the filesystem snapshot.
For create operation, if access_type is not specified, snapshot will be created with 'SNAPSHOT' access type.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
user str True
The username of the PowerStore host.
filesystem str
The ID/Name of the filesystem for which snapshot will be taken.
If filesystem name is specified, then nas_server is required to uniquely identify the filesystem.
Mandatory for create operation.

Notes

  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Create filesystem snapshot
  filesystem_snapshot:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      snapshot_name: "sample_filesystem_snapshot"
      nas_server: "ansible_nas_server"
      filesystem: "sample_filesystem"
      desired_retention: 20
      retention_unit: "days"
      state: "present"

- name: Get the details of filesystem snapshot
  filesystem_snapshot:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      snapshot_id: "{{fs_snapshot_id}}"
      state: "present"

- name: Modify the filesystem snapshot
  filesystem_snapshot:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      snapshot_name: "sample_filesystem_snapshot"
      nas_server: "ansible_nas_server"
      description: "modify description"
      expiration_timestamp: ""
      state: "present"

- name: Delete filesystem snapshot
  filesystem_snapshot:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      snapshot_id: "{{fs_snapshot_id}}"
      state: "absent"

Return Values

Key Type Returned Description
filesystem_snap_details dict When snapshot exists. Details of the snapshot.
  access_type str success Displays the type of access allowed to the snapshot.
  expiration_timestamp str success The date and time the snapshot is due to be automatically deleted by the system.
  parent_id str success ID of the filesystem on which snapshot is taken.
  nas_server dict success Details of NAS server on which snapshot is present.
    id str success ID of the NAS server.
    name str success Name of the NAS server
  name str success The name of the snapshot.
  description str success Description of the filesystem snapshot.
  id str success Unique identifier of the filesystem snapshot instance.
  parent_name str success Name of the filesystem on which snapshot is taken.
  creation_timestamp str success The date and time the snapshot was created.
delete_fs_snap bool always Whether or not the resource has deleted
changed bool always Whether or not the resource has changed
modify_fs_snap bool always Whether or not the resource has modified
create_fs_snap bool always Whether or not the resource has created

Authors


Host Module

Manage host on PowerStore storage system.

Synopsis

Managing host on PowerStore storage system includes create host with a set of initiators, add/remove initiators from host, rename host and delete host.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
os_type str
  • Windows
  • Linux
  • ESXi
  • AIX
  • HP-UX
  • Solaris

Operating system of the host.
Required when creating a host
OS type cannot be modified for a given host.
state str True
  • absent
  • present

Define whether the host should exist or not.
present - indicates that the host should exist in system.
absent - indicates that the host should not exist in system.
user str True
The username of the PowerStore host.
detailed_initiators list
elements: dict

Initiator properties.
It is mutually exclusive with initiators.
  chap_single_password str
Password for single CHAP authentication.
CHAP password is required when the cluster CHAP mode is mutual authentication.
Minimum length is 12 and maximum length is 64 characters.
  port_type str
  • iSCSI
  • FC
  • NVMe

Protocol type of the host initiator.
  chap_mutual_password str
Password for mutual CHAP authentication.
CHAP password is required when the cluster CHAP mode is mutual authentication.
Minimum length is 12 and maximum length is 64 characters.
  chap_single_username str
Username for single CHAP authentication.
CHAP username is required when the cluster CHAP mode is mutual authentication.
Minimum length is 1 and maximum length is 64 characters.
  port_name str True
Name of port type.
port_name is mandatory key.
  chap_mutual_username str
Username for mutual CHAP authentication.
CHAP username is required when the cluster CHAP mode is mutual authentication.
Minimum length is 1 and maximum length is 64 characters.
host_name str
The host name. This value must contain 128 or fewer printable Unicode characters.
Creation of an empty host is not allowed.
Required when creating a host.
Use either host_id or host_name for modify and delete tasks.
initiator_state str
  • present-in-host
  • absent-in-host

Define whether the initiators should be present or absent in host.
present-in-host - indicates that the initiators should exist on host.
absent-in-host - indicates that the initiators should not exist on host.
Required when creating a host with initiators or adding/removing initiators to/from existing host.
host_id str
The 36 character long host id automatically generated when a host is created.
Use either host_id or host_name for modify and delete tasks.
host_id cannot be used while creating host, as it is generated by the array after creation of host.
array_ip str True
IP or FQDN of the PowerStore management system.
password str True
The password of the PowerStore host.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
new_name str
The new name of host for renaming function. This value must contain 128 or fewer printable Unicode characters.
Cannot be specified when creating a host.
initiators list
elements: str

List of Initiator WWN or IQN or NQN to be added or removed from the host.
Subordinate initiators in a host can only be of one type, either FC or iSCSI.
Required when creating a host.
It is mutually exclusive with detailed_initiators.

Notes

  • Only completely and correctly configured iSCSI initiators can be associated with a host.
  • The parameters initiators and detailed_initiators are mutually exclusive.
  • For mutual CHAP authentication, single CHAP credentials are mandatory.
  • Support of NVMe type of initiators is for PowerStore 2.0 and beyond.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

  - name: Create host with FC initiator.
    host:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      host_name: "ansible-test-host-1"
      os_type: 'Windows'
      initiators:
        - 21:00:00:24:ff:31:e9:fc
      state: 'present'
      initiator_state: 'present-in-host'

  - name: Create host with iSCSI initiator and its details.
    host:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      host_name: "ansible-test-host-2"
      os_type: 'Windows'
      detailed_initiators:
        - port_name: 'iqn.1998-01.com.vmware:lgc198248-5b06fb37'
          port_type: 'iSCSI'
          chap_single_username: 'chapuserSingle'
          chap_single_password: 'chappasswd12345'
        - port_name: 'iqn.1998-01.com.vmware:imn198248-5b06fb37'
          port_type: 'iSCSI'
          chap_mutual_username: 'chapuserMutual'
          chap_mutual_password: 'chappasswd12345'
      state: 'present'
      initiator_state: 'present-in-host'

  - name: Get host details by name.
    host:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      host_name: "ansible-test-host-1"
      state: 'present'

  - name: Get host details by id.
    host:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      host_id: "5c1e869b-ed8a-4845-abae-b102bc249d41"
      state: 'present'

  - name: Add initiators to host by name.
    host:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      host_name: "ansible-test-host-1"
      initiators:
        - 21:00:00:24:ff:31:e9:ee
      initiator_state: 'present-in-host'
      state: 'present'

  - name: Add initiators to host by id.
    host:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      host_id: "5c1e869b-ed8a-4845-abae-b102bc249d41"
      detailed_initiators:
        - port_name: 'iqn.1998-01.com.vmware:imn198248-5b06fb37'
          port_type: 'iSCSI'
          chap_mutual_username: 'chapuserMutual'
          chap_mutual_password: 'chappasswd12345'
      initiator_state: 'present-in-host'
      state: 'present'

  - name: Remove initiators from host by name.
    host:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      host_name: "ansible-test-host-2"
      detailed_initiators:
        - port_name: 'iqn.1998-01.com.vmware:imn198248-5b06fb37'
          port_type: 'iSCSI'
          chap_mutual_username: 'chapuserMutual'
          chap_mutual_password: 'chappasswd12345'
      initiator_state: 'absent-in-host'
      state: 'present'

  - name: Remove initiators from by id.
    host:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      host_id: "8c1e869b-fe8a-4845-hiae-h802bc249d41"
      initiators:
        - 21:00:00:24:ff:31:e9:ee
      initiator_state: 'absent-in-host'
      state: 'present'

  - name: Rename host by name.
    host:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      host_name: "ansible-test-host-1"
      new_name: "ansible-test-host-1-new"
      state: 'present'

  - name: Rename host by id.
    host:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      host_id: "5c1e869b-ed8a-4845-abae-b102bc249d41"
      new_name: "ansible-test-host-2-new"
      state: 'present'

  - name: Delete host
    host:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      host_name: "ansible-test-host-1-new"
      state: 'absent'

  - name: Delete host by id
    host:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      host_id: "5c1e869b-ed8a-4845-abae-b102bc249d41"
      state: 'absent'

Return Values

Key Type Returned Description
host_details complex When host exists Details of the host.
  type str success Type of the host.
  os_type str success The os type of the host.
  name str success Name of the host.
  host_group_id str success The host group ID of host.
  id str success The system generated ID given to the host.
  description str success Description about the host.
  host_initiators complex success The initiator details of this host.
    active_sessions list success List of active login sessions between an initiator and a target port.
    chap_single_username str success Username for single CHAP authentication.
    port_name str success Name of the port.
    chap_mutual_username str success Username for mutual CHAP authentication.
    port_type str success The type of the port.
  mapped_hosts complex success This is the inverse of the resource type host_volume_mapping association.
    logical_unit_number int success Logical unit number for the host volume access.
    volume dict success Details about a volume which has mapping with the host.
      id str success ID of the volume.
      name str success Name of the volume.
    host_group dict success Details about a host group to which host is mapped.
      id str success ID of the host group.
      name str success Name of the host group.
    id str success Unique identifier of a mapping between a host and a volume.
changed bool always Whether or not the resource has changed.

Authors


Host Group Module

Manage host group on PowerStore Storage System.

Synopsis

Managing host group on PowerStore storage system includes create host group with a set of hosts, add/remove hosts from host group, rename host group, and delete host group. Deletion of a host group results in deletion of the containing hosts as well. Remove hosts from the host group first to retain them.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
hosts list
elements: str

List of hosts to be added or removed from the host group.
Subordinate hosts in a host group can only be of one type, either FC or iSCSI.
Required when creating a host group.
To represent host, both name or ID can be used interchangeably. The module will detect both.
hostgroup_id str
The 36-character long host group id, automatically generated when a host group is created.
Use either hostgroup_id or hostgroup_name for modify and delete tasks.
hostgroup_id cannot be used while creating host group, as it is generated by the array after creation of host group.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
hostgroup_name str
The host group name. This value must contain 128 or fewer printable Unicode characters.
Creation of an empty host group is not allowed.
Required when creating a host group.
Use either hostgroup_id or hostgroup_name for modify and delete tasks.
user str True
The username of the PowerStore host.
host_state str
  • present-in-group
  • absent-in-group

Define whether the hosts should be present or absent in host group.
present-in-group - indicates that the hosts should exist on the host group.
absent-in-group - indicates that the hosts should not exist on the host group.
Required when creating a host group with hosts or adding/removing hosts from existing host group.
new_name str
The new name for host group renaming function. This value must contain 128 or fewer printable Unicode characters.
password str True
The password of the PowerStore host.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
state str True
  • absent
  • present

Define whether the host group should exist or not.
present - indicates that the host group should exist on the system.
absent - indicates that the host group should not exist on the system.
Deletion of a host group results in deletion of the containing hosts as well. Remove hosts from the host group first to retain them.
array_ip str True
IP or FQDN of the PowerStore management system.

Notes

  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

  - name: Create host group with hosts using host name
    hostgroup:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      hostgroup_name: "{{hostgroup_name}}"
      hosts:
        - host1
        - host2
      state: 'present'
      host_state: 'present-in-group'

  - name: Create host group with hosts using host ID
    hostgroup:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      hostgroup_name: "{{hostgroup_name}}"
      hosts:
        - c17fc987-bf82-480c-af31-9307b89923c3
      state: 'present'
      host_state: 'present-in-group'

  - name: Get host group details
    hostgroup:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      hostgroup_name: "{{hostgroup_name}}"
      state: 'present'

  - name: Get host group details using ID
    hostgroup:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      hostgroup_id: "{{host group_id}}"
      state: 'present'

  - name: Add hosts to host group
    hostgroup:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      hostgroup_name: "{{hostgroup_name}}"
      hosts:
        - host3
      host_state: 'present-in-group'
      state: 'present'

  - name: Remove hosts from host group
    hostgroup:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      hostgroup_name: "{{hostgroup_name}}"
      hosts:
        - host3
      host_state: 'absent-in-group'
      state: 'present'

  - name: Rename host group
    hostgroup:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      hostgroup_name: "{{hostgroup_name}}"
      new_name: "{{new_hostgroup_name}}"
      state: 'present'

  - name: Delete host group
    hostgroup:
      array_ip: "{{array_ip}}"
      verifycert: "{{verifycert}}"
      user: "{{user}}"
      password: "{{password}}"
      hostgroup_name: "{{hostgroup_name}}"
      state: 'absent'

Return Values

Key Type Returned Description
changed bool always Whether or not the resource has changed.
hostgroup_details complex When host group exists Details of the host group.
  id str success The system generated ID given to the host group.
  description str success Description about the host group.
  hosts complex success The hosts details which are part of this host group.
    id str success The ID of the host.
    name str success The name of the host.
  name str success Name of the host group.

Authors


Info Module

Gathers information about PowerStore Storage entities

Synopsis

Gathers the list of specified PowerStore Storage System entities, such as the list of cluster nodes, volumes, volume groups, hosts, host groups, snapshot rules, protection policies, NAS servers, NFS exports, SMB shares, tree quotas, user quotas, file systems, replication rules, replication sessions, remote system, network, roles, local users, appliances, security configs, certificates, AD and LDAP servers etc.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
gather_subset list
elements: str
True
  • vol
  • vg
  • host
  • hg
  • node
  • protection_policy
  • snapshot_rule
  • nas_server
  • nfs_export
  • smb_share
  • tree_quota
  • user_quota
  • file_system
  • replication_rule
  • replication_session
  • remote_system
  • network
  • role
  • user
  • appliance
  • ad
  • ldap
  • security_config
  • certificate

A list of string variables which specify the PowerStore system entities requiring information.
vol - volumes.
node - all the nodes.
vg - volume groups.
protection_policy - protection policies.
host - hosts.
hg - host groups.
snapshot_rule - snapshot rules.
nas_server - NAS servers.
nfs_export - NFS exports.
smb_share - SMB shares.
tree_quota - tree quotas.
user_quota - user quotas.
file_system - file systems.
replication_rule - replication rules.
replication_session - replication sessions.
remote_system - remote systems.
network - various networks.
role - roles.
user - local users.
appliance - appliances.
security_config - security configurations.
certificate - certificates.
ad - active directories.
ldap - LDAPs.
password str True
The password of the PowerStore host.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
array_ip str True
IP or FQDN of the PowerStore management system.
all_pages bool False
Indicates whether to return all available entities on the storage system.
If set to True, the Info module will implement pagination and return all entities. Otherwise, a maximum of the first 100 entities of any type will be returned.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
filters list
elements: dict

A list of filters to support filtered output for storage entities.
Each filter is a list of filter_key, filter_operator, filter_value.
Supports passing of multiple filters.
  filter_operator str True
  • equal
  • greater
  • lesser
  • like
  • notequal

Operation to be performed on the filter key.
  filter_key str True
Name identifier of the filter.
  filter_value str True
Value of the filter key.
user str True
The username of the PowerStore host.

Notes

  • Pagination is not supported for role, local user and security configs. If all_pages is passed, it will be ignored.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Get list of volumes, volume groups, hosts, host groups and node
  dellemc.powerstore.info:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    gather_subset:
      - vol
      - vg
      - host
      - hg
      - node
- name: Get list of replication related entities
  dellemc.powerstore.info:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    gather_subset:
      - replication_rule
      - replication_session
      - remote_system

- name: Get list of volumes whose state notequal to ready
  dellemc.powerstore.info:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    gather_subset:
      - vol
    filters:
      - filter_key: "state"
        filter_operator: "notequal"
        filter_value: "ready"

- name: Get list of protection policies and snapshot rules
  dellemc.powerstore.info:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    gather_subset:
      - protection_policy
      - snapshot_rule

- name: Get list of snapshot rules whose desired_retention between 101-499
  dellemc.powerstore.info:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    gather_subset:
      - snapshot_rule
    filters:
      - filter_key: "desired_retention"
        filter_operator: "greater"
        filter_value: "100"
      - filter_key: "desired_retention"
        filter_operator: "lesser"
        filter_value: "500"

- name: Get list of nas server, nfs_export and smb share
  dellemc.powerstore.info:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    gather_subset:
      - nas_server
      - nfs_export
      - smb_share

- name: Get list of tree quota, user quota and file system
  dellemc.powerstore.info:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    gather_subset:
      - tree_quota
      - user_quota
      - file_system

- name: Get list of nas server whose name equal to 'nas_server'
  dellemc.powerstore.info:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    gather_subset:
      - nas_server
    filters:
      - filter_key: "name"
        filter_operator: "equal"
        filter_value: "nas_server"

- name: Get list of smb share whose name contains 'share'
  dellemc.powerstore.info:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    gather_subset:
      - nas_server
    filters:
      - filter_key: "name"
        filter_operator: "like"
        filter_value: "*share*"

- name: Get list of user, role, network and appliances
  dellemc.powerstore.info:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    gather_subset:
      - user
      - role
      - network
      - appliance

- name: Get list of ad, certificate, security config and ldaps
  dellemc.powerstore.info:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    gather_subset:
      - ad
      - ldap
      - certificate
      - security_config

- name: Get list of networks whose name contains 'Management'
  dellemc.powerstore.info:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    gather_subset:
      - network
    filters:
      - filter_key: "name"
        filter_operator: "like"
        filter_value: "*Management*"

Return Values

Key Type Returned Description
subset_result complex always Provides details of all given subsets.
  SnapshotRules list success Provides details of all snapshot rules.
    id str success ID of the snapshot rule.
    name str success Name of the snapshot rule.
  Roles list success Provides details of all roles.
    id str success ID of the role.
    name str success Name of the role.
  NASServers list success Provides details of all nas servers.
    id str success ID of the nas server.
    name str success Name of the nas server.
  HostGroups list success Provides details of all host groups.
    id str success ID of the host group.
    name str success Name of the host group.
  ActiveDirectory list success Provides details of all active directories.
    id str success ID of the active directory.
  SMBShares list success Provides details of all smb shares.
    id str success ID of the smb share.
    name str success name of the smb share.
  NFSExports list success Provides details of all nfs exports.
    id str success ID of the nfs export.
    name str success Name of the nfs export.
  Nodes list success Provides details of all nodes.
    id str success ID of the node.
    name str success Name of the node.
  VolumeGroups list success Provides details of all volume groups.
    id str success ID of the volume group.
    name str success Name of the volume group.
  LocalUsers list success Provides details of all local users.
    id str success ID of the user.
    name str success Name of the user.
  TreeQuotas list success Provides details of all tree quotas.
    path str success Path of the tree quota.
    id str success ID of the tree quota.
  FileSystems list success Provides details of all filesystems.
    id str success ID of the filesystem.
    name str success Name of the filesystem.
  Certificate list success Provides details of all certificates.
    id str success ID of the certificate.
  Hosts list success Provides details of all hosts.
    id str success ID of the host.
    name str success Name of the host.
  RemoteSystems list success Provides details of all remote systems.
    id str success ID of the remote system.
    name str success Name of the remote system.
  Networks list success Provides details of all networks.
    id str success ID of the network.
    name str success Name of the network.
  UserQuotas list success Provides details of all user quotas.
    id str success ID of the user quota.
  ReplicationRules list success Provides details of all replication rules.
    id str success ID of the replication rule.
    name str success Name of the replication rule.
  LDAP list success Provides details of all LDAPs.
    id str success ID of the LDAP.
  Cluster list success Provides details of all clusters.
    id str success ID of the cluster.
    name str success Name of the cluster.
  SecurityConfig list success Provides details of all security configs.
    id str success ID of the security config.
  ReplicationSession list success details of all replication sessions.
    id str success ID of the replication session.
  Volumes list success Provides details of all volumes.
    id str success ID of the volume.
    name str success Name of the volume.
  ProtectionPolicies list success Provides details of all protection policies.
    id str success ID of the protection policy.
    name str success Name of the protection policy.
  Appliance list success Provides details of all appliances.
    id str success ID of the appliance.
    model str success Model type of the PowerStore.
    name str success Name of the appliance.
changed bool always Shows whether or not the resource has changed.

Authors


Job Module

Manage jobs on Dell EMC PowerStore.

Synopsis

Managing jobs on PowerStore Storage System includes getting details of job.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
password str True
The password of the PowerStore host.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
array_ip str True
IP or FQDN of the PowerStore management system.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
user str True
The username of the PowerStore host.
job_id str True
The ID of the job.

Notes

  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Get Job Details
  job:
    array_ip: "{{mgmt_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    job_id: "a544981c-e94a-40ab-9eae-e578e182d2bb"

Return Values

Key Type Returned Description
job_details complex When job exists. The job details.
  parent_id str success Unique identifier of the parent job, if applicable.
  end_time str success Date and time when the job execution completed.
  step_order int success Order of a given job step with respect to its siblings within the job hierarchy.
  state str success Current status of the job.
  root_id str success Unique identifier of the root job, if applicable. The root job is the job at the top of the parent hierarchy.
  estimated_completion_time str success Estimated completion date and time.
  resource_name str success Name of the resource on which the job is operating.
  response_status str success Possible HTTP status values of completed or failed jobs.
  start_time str success Date and time when the job execution started.
  resource_type str success Resource Type for the given resource.
  phase str success Current status of the job.
  resource_action str success User-specified action to be performed on the given resource.
  progress_percentage int success Percent complete of the job.
  id str success Unique identifier of the job.
  response_body complex success Base response object.
    messages complex success The details of the error response.
      arguments list success Values involved in the error.
      code str success Hexadecimal code of the error.
      message_l10n str success The description of the error.
      severity str success Type of the severity.
    response_type str success Job error response.
  description_l10n str success Description of the job.
  resource_id str success Unique identifier of the resource on which the job is operating.
  user str success Name of the user associated with the job.
changed bool always Whether or not the resource has changed.

Authors


Local User Module

Local user operations on PowerStore Storage System

Synopsis

Supports the provisioning operations on a Local user such as create, modify, delete and get the details of a local user.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
role_name str
The name of the role to which the local user account will be mapped.
It is mutually exclusive with role_id.
role_id int
The unique identifier of the role to which the local user account will be mapped.
It is mutually exclusive with role_name.
state str True
  • absent
  • present

Define whether the local user should exist or not.
user_id str
Unique identifier of the local user account.
Mutually exclusive with user_name.
new_password str
New password for the existing local user account.
is_locked bool
Whether the user account is locked or not.
Defaults to false at creation time.
password str True
The password of the PowerStore host.
user_password str
Password for the new local user account to be created.
Mandatory only for create operation.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
user_name str
Name of the local user account. Mutually exclusive with user_id.
Mandatory only for create operation.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
array_ip str True
IP or FQDN of the PowerStore management system.
user str True
The username of the PowerStore host.

Notes

  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: create local user
  local_user:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    user_name: "ansible_user_1"
    user_password: "Password123#"
    role_name: "role_1"
    is_locked: False
    state: "present"

- name: get the details local user with user id
  local_user:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    user_id: "{{user_id}}"
    state: "present"

- name: get the details local user with user name
  local_user:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    user_name: "ansible_user_1"
    state: "present"

- name: Modify attributes of local user
  local_user:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    user_name: "ansible_user_1"
    user_password: "Password123#"
    new_password: "Ansible123#"
    role_id: 4
    is_locked: True
    state: "present"

- name: delete local user
  local_user:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    user_name: "ansible_user_1"
    state: "absent"

Return Values

Key Type Returned Description
changed bool always Whether or not the resource has changed
local_user_details complex When local user exists Details of the local user
  is_default_password bool success Whether the user account has a default password or not. Only applies to default user accounts
  is_built_in bool success Whether the user account is built-in or not.
  role_name str success Name of the role to which local user account is mapped.
  is_locked bool success Whether the user account is locked or not. Defaults to false at creation time.
  name str success Name of the local user.
  role_id str success Unique identifier of the role local user account is mapped to.
  id str success The system generated ID given to the local user.

Authors


NAS Server Module

NAS Server operations on PowerStore Storage system.

Synopsis

Supports getting the details and modifying the attributes of a NAS server.

Parameters

Parameter Type Required Default Choices Description
preferred_node str
Unique identifier or name of the preferred node for the NAS server. The initial value (on NAS server create) is taken from the current node.
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
current_unix_directory_service str
  • NIS
  • LDAP
  • LOCAL_FILES
  • LOCAL_THEN_NIS
  • LOCAL_THEN_LDAP

Define the Unix directory service used for looking up identity information for Unix such as UIDs, GIDs, net groups, and so on.
nas_server_id str
Unique id of the NAS server. Mutually exclusive with nas_server_name.
nas_server_new_name str
New name of the NAS server for a rename operation.
default_unix_user str
Default Unix user name used for granting access in case of Windows to Unix user mapping failure. When empty, access in such case is denied.
nas_server_name str
Name of the NAS server. Mutually exclusive with nas_server_id.
current_node str
Unique identifier or name of the node on which the NAS server is running.
array_ip str True
IP or FQDN of the PowerStore management system.
password str True
The password of the PowerStore host.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
description str
Description of the NAS server.
state str True
  • absent
  • present

Define whether the nas server should exist or not.
user str True
The username of the PowerStore host.
default_windows_user str
Default Windows user name used for granting access in case of Unix to Windows user mapping failure. When empty, access in such case is denied.

Notes

  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

 - name: Get details of NAS Server by name
   nasserver:
     array_ip: "{{array_ip}}"
     verifycert: "{{verifycert}}"
     user: "{{user}}"
     password: "{{password}}"
     nas_server_name: "{{nas_server_name}}"
     state: "present"

 - name: Get Details of NAS Server by ID
   nasserver:
     array_ip: "{{array_ip}}"
     verifycert: "{{verifycert}}"
     user: "{{user}}"
     password: "{{password}}"
     nas_server_id: "{{nas_id}}"
     state: "present"

 - name: Rename NAS Server by Name
   nasserver:
     array_ip: "{{array_ip}}"
     verifycert: "{{verifycert}}"
     user: "{{user}}"
     password: "{{password}}"
     nas_server_name: "{{nas_server_name}}"
     nas_server_new_name : "{{nas_server_new_name}}"
     state: "present"

 - name: Modify NAS Server attributes by ID
   nasserver:
     array_ip: "{{array_ip}}"
     verifycert: "{{verifycert}}"
     user: "{{user}}"
     password: "{{password}}"
     nas_server_id: "{{nas_id}}"
     current_unix_directory_service: "LOCAL_FILES"
     current_node: "{{cur_node_n1}}"
     preferred_node: "{{prefered_node}}"
     state: "present"

Return Values

Key Type Returned Description
nasserver_details complex When nas server exists Details about the nas server
  preferred_node dict success Unique identifier and name of the preferred node for the NAS server.
  file_ldaps str success This is the inverse of the resource type file_ldap association.
  file_interfaces dict success This is the inverse of the resource type file_interface association. Will return the id,name & ip_address of the associated file interface.
  production_IPv6_interface_id str success Unique identifier of the preferred IPv6 production interface.
  is_username_translation_enabled bool success Enable the possibility to match a windows account to a Unix account with different names.
  nfs_servers str success This is the inverse of the resource type nfs_server association.
  id str success The system generated ID given to the nas server
  file_systems dict success This is the inverse of the resource type file_system association.
  current_unix_directory_service str success Define the Unix directory service used for looking up identity information for Unix such as UIDs, GIDs, net groups, and so on.
  default_unix_user str success Default Unix user name used for granting access in case of Windows to Unix user mapping failure.
  production_IPv4_interface_id str success Unique identifier of the preferred IPv4 production interface.
  backup_IPv4_interface_id str success Unique identifier of the preferred IPv4 backup interface.
  smb_servers str success This is the inverse of the resource type smb_server association.
  current_node dict success Unique identifier and name of the node on which the NAS server is running.
  backup_IPv6_interface_id str success Unique identifier of the preferred IPv6 backup interface.
  name str success Name of the nas server
  operational_status str success NAS server operational status.
  description str success Additional information about the nas server.
changed bool always Whether or not the resource has changed

Authors


Network Module

Manage networks on Dell EMC PowerStore.

Synopsis

Managing networks on PowerStore Storage System includes getting details of network, modifying attributes of network and adding/removing IP ports to/from storage network.

Parameters

Parameter Type Required Default Choices Description
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
mtu int
Maximum Transmission Unit (MTU) packet size set on network interfaces, in bytes.
network_name str
The name of the network.
This parameter is added in 2.0.0.0.
Specify either network_name or network_id for any operation.
new_cluster_mgmt_address str
New cluster management IP address in IPv4 format.
vlan_id int
The ID of the VLAN.
esxi_credentials list
elements: dict

Credentials required for re-registering the ESXi hosts in the vCenter.
It should be passed only when ESXi host addresses or management network VLAN / prefix / gateway are changed during the reconfiguration of the PowerStore X model appliances.
This parameter is applicable only for PowerStore X model.
This parameter will be ignored if passed for PowerStore T model.
  node_id str True
Node identifier corresponding to the ESXi host.
  password str True
ESXi host root password.
array_ip str True
IP or FQDN of the PowerStore management system.
port_state str
  • present-in-network
  • absent-in-network

Specifies whether port should mapped/unmapped from the storage network.
gateway str
Network gateway in IPv4 format. IP version.
Specify empty string to remove the gateway.
user str True
The username of the PowerStore host.
prefix_length int
Network prefix length.
vasa_provider_credentials dict
Credentials required for re-registering the VASA vendor provider during the reconfiguration of the cluster management IP address.
  username str True
VASA vendor provider user name.
  password str True
VASA vendor provider password.
storage_discovery_address str
New storage discovery IP address in IPv4 format.
Specify empty string to remove the storage discovery IP address.
wait_for_completion bool False
Flag to indicate if the operation should be run synchronously or asynchronously. True signifies synchronous execution. By default, modify operation will run asynchronously.
network_id str
The ID of the network.
password str True
The password of the PowerStore host.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
ports list
elements: str

Ports to be mapped/unmapped to/from the storage network.
addresses list
elements: dict

IP addresses to add/remove in IPv4 format.
  new_address str
New IPv4 address.
  current_address str
Existing IPv4 address.
state str True
  • absent
  • present

Define whether the network exist or not.
new_name str
New name of the network.

Notes

  • It is recommended to perform task asynchronously while changing cluster management address.
  • Idempotency is not supported for vasa_provider_credentials and esxi_credentials.
  • For PowerStore X model, vasa_provider_credentials has to be specified along with new_cluster_mgmt_address.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Get network details using ID
  network:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    network_id: "NW1"
    state: "present"

- name: Get network details using name
  network:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    network_name: "Default Management Network"
    state: "present"

- name: Rename the storage network
  network:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    network_name: "Default Storage Network"
    new_name: "iSCSI Network"
    wait_for_completion: True
    state: "present"

- name: Replace the IP's in the management network and re-register VASA vendor provider
  network:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    network_id: "NW1"
    addresses:
    - current_address: "100.230.x.x"
      new_address: "100.230.x.x"
    - current_address: "100.230.x.x"
      new_address: "100.230.x.x"
    - current_address: "100.230.x.x"
      new_address: "100.230.x.x"
    new_cluster_mgmt_address: "100.230.x.x"
    vasa_provider_credentials:
      username: "vmadmin"
      password: "{{vm_password}}"
    state: "present"

- name: Map port to the storage network
  network:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    network_id: "NW6"
    ports:
    - "IP1"
    port_state: "present-in-network"
    state: "present"

- name: Unmap port from the storage network
  network:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    network_id: "NW6"
    ports:
    - "IP1"
    port_state: "absent-in-network"
    state: "present"

- name: Replace the IP's in the management network and re-register VASA vendor
        provider for X model
  network:
    array_ip: "{{array_ip1}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    network_id: "NW1"
    vlan_id: 0
    gateway: "100.231.x.x"
    mtu: 1500
    prefix_length: 24
    addresses:
    - current_address: "100.230.x.x"
      new_address: "100.231.x.x"
    - current_address: "100.230.x.x"
      new_address: "100.231.x.x"
    - current_address: "100.230.x.x"
      new_address: "100.231.x.x"
    - current_address: "100.230.x.x"
      new_address: "100.231.x.x"
    - current_address: "100.230.x.x"
      new_address: "100.231.x.x"
    new_cluster_mgmt_address: "100.231.x.x"
    vasa_provider_credentials:
      username: "vmadmin"
      password: "{{vm_password}}"
    esxi_credentials:
    - "node_id": "N1"
      "password": "{{node_password}}"
    - "node_id": "N2"
      "password": "{{node_password}}"
    state: "present"

Return Values

Key Type Returned Description
network_details complex When network exists. The network details.
  member_ips complex success Properties of the IP pool address.
    address str success IP address value, in IPv4 or IPv6 format.
    purposes list success IP address purposes.
    id str success Unique identifier of the IP address.
    node_id str success Unique identifier of the cluster node to which the IP address belongs.
    name str success Name of the IP address.
    network_id str success Unique identifier of the network to which the IP address belongs.
    appliance_id str success Unique identifier of the appliance to which the IP address belongs.
    ip_port_id str success Unique identifier of the port that uses this IP address to provide access to storage network services, such as iSCSI. This attribute can be set only for an IP address used by networks of type Storage.
  purposes list success Purposes of the network.
  prefix_length int success Network prefix length.
  mtu int success Maximum Transmission Unit (MTU) packet size set on network interfaces, in bytes.
  name str success The name of the network.
  vlan_id int success VLAN identifier.
  ip_version str success IP protocol version
  vcenter_details complex success Details of the vcenter.
    username str success User name to login to vCenter.
    instance_uuid str success UUID instance of the vCenter.
    vendor_provider_status str success General status of the VASA vendor provider in vCenter.
    address str success IP address of vCenter host, in IPv4, IPv6, or hostname format.
    id str success Unique identifier of the vCenter instance.
  type str success Network type
  gateway str success The gateway of the network.
  id str success The ID of the network.
  cluster_details complex success The details of the cluster.
    appliance_count int success Number of appliances configured in this cluster.
    management_address str success The floating management IP address for the cluster in IPv4 or IPv6 format.
    storage_discovery_address str success The floating storage discovery IP address for the cluster in IPv4 or IPv6 format.
    id str success The unique identifier of the cluster.
    name str success The name of the cluster.
job_details complex When asynchronous task is performed. The job details.
  id str success The ID of the job.
changed bool always Whether or not the resource has changed.

Authors


NFS Module

Manage NFS exports on Dell EMC PowerStore.

Synopsis

Managing NFS exports on PowerStore Storage System includes creating new NFS Export, getting details of NFS export, modifying attributes of NFS export, and deleting NFS export.

Parameters

Parameter Type Required Default Choices Description
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
nfs_export_id str
The ID of the NFS export.
snapshot str
The ID/Name of the Snapshot for which NFS export will be created.
Either filesystem or snapshot is required for creation of the NFS Export.
If snapshot name is specified, then nas_server is required to uniquely identify the snapshot.
If snapshot parameter is provided, then filesystem cannot be specified.
NFS export can be created only if access type of snapshot is "protocol".
nfs_export_name str
The name of the NFS export.
Mandatory for create operation.
Specify either nfs_export_name or nfs_export_id(but not both) for any operation.
array_ip str True
IP or FQDN of the PowerStore management system.
anonymous_gid int
Specifies the group ID of the anonymous account.
If not specified at the time of creation, it will be set to -2.
path str
Local path to export relative to the NAS server root.
With NFS, each export of a file_system or file_snap must have a unique local path.
Mandatory while creating NFS export.
read_write_root_hosts list
elements: str

Hosts with read and write access for root user to the NFS export.
read_only_root_hosts list
elements: str

Hosts with read-only access for root user to the NFS export.
anonymous_uid int
Specifies the user ID of the anonymous account.
If not specified at the time of creation, it will be set to -2.
user str True
The username of the PowerStore host.
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
read_only_hosts list
elements: str

Hosts with read-only access to the NFS export.
host_state str
  • present-in-export
  • absent-in-export

Define whether the hosts can access the NFS export.
Required when adding or removing host access from the export.
min_security str
  • SYS
  • KERBEROS
  • KERBEROS_WITH_INTEGRITY
  • KERBEROS_WITH_ENCRYPTION

NFS enforced security type for users accessing an NFS export.
If not specified at the time of creation, it will be set to SYS.
state str True
  • absent
  • present

Define whether the NFS export should exist or not.
read_write_hosts list
elements: str

Hosts with read and write access to the NFS export.
no_access_hosts list
elements: str

Hosts with no access to the NFS export.
is_no_suid bool
If set, do not allow access to set SUID. Otherwise, allow access.
If not specified at the time of creation, it will be set to False.
password str True
The password of the PowerStore host.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
default_access str
  • NO_ACCESS
  • READ_ONLY
  • READ_WRITE
  • ROOT
  • READ_ONLY_ROOT

Default access level for all hosts that can access the Export.
For hosts that need different access than the default, they can be configured by adding to the list.
If default_access is not mentioned during creation, then NFS export will be created with No_Access.
description str
The description for the NFS export.
filesystem str
The ID/Name of the filesystem for which the NFS export will be created.
Either filesystem or snapshot is required for creation of the NFS Export.
If filesystem name is specified, then nas_server is required to uniquely identify the filesystem.
If filesystem parameter is provided, then snapshot cannot be specified.
nas_server str
The NAS server. This could be the name or ID of the NAS server.

Notes

  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Create NFS export (filesystem)
  nfs:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    nfs_export_name: "{{export_name1}}"
    filesystem: "{{filesystem}}"
    nas_server: "{{nas_server}}"
    path: "{{path1}}"
    description: "sample description"
    default_access: "NO_ACCESS"
    no_access_hosts:
      - "{{host5}}"
    read_only_hosts:
      - "{{host1}}"
    read_only_root_hosts:
      - "{{host2}}"
    read_write_hosts:
      - "{{host3}}"
    read_write_root_hosts:
      - "{{host4}}"
    min_security: "SYS"
    anonymous_uid: 1000
    anonymous_gid: 1000
    is_no_suid: True
    host_state: "present-in-export"
    state: "present"

- name: Create NFS export Create NFS export for filesystem snapshot with mandatory parameters
  nfs:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    nfs_export_name: "{{export_name2}}"
    snapshot: "{{snapshot}}"
    nas_server: "{{nas_server}}"
    path: "{{path2}}"
    state: "present"

- name: Get NFS export details using ID
  nfs:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    nfs_export_id: "{{export_id}}"
    state: "present"

- name: Add Read-Only and Read-Write hosts to NFS export
  nfs:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    nfs_export_id: "{{export_id}}"
    read_only_hosts:
      - "{{host5}}"
    read_write_hosts:
      - "{{host6}}"
    host_state: "present-in-export"
    state: "present"

- name: Remove Read-Only and Read-Write hosts from NFS export
  nfs:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    nfs_export_id: "{{export_id}}"
    read_only_hosts:
      - "{{host1}}"
    read_write_hosts:
      - "{{host3}}"
    host_state: "absent-in-export"
    state: "present"

- name: Modify the attributes of NFS export
  nfs:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    nfs_export_id: "{{export_id}}"
    description: "modify description"
    default_access: "ROOT"
    state: "present"

- name: Delete NFS export using name
  nfs:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    nfs_export_name: "{{export_name}}"
    nas_server: "{{nas_server}}"
    state: "absent"

Return Values

Key Type Returned Description
nfs_export_details complex When NFS export exists. The NFS export details.
  file_system complex success Details of filesystem and NAS server on which NFS export is present.
    id str success The ID of the filesystem.
    filesystem_type str success The type of the filesystem.
    nas_server complex success Details of NAS server.
      id str success The ID of the NAS server.
      name str success The name of the NAS server.
    name str success The name of the filesystem.
  read_only_hosts list success Hosts with read-only access to the NFS export.
  is_no_SUID bool success If set, do not allow access to set SUID. Otherwise, allow access.
  min_security str success NFS enforced security type for users accessing an NFS export.
  name str success The name of the NFS export.
  anonymous_UID int success The user ID of the anonymous account.
  anonymous_GID int success The group ID of the anonymous account.
  read_write_hosts list success Hosts with read and write access to the NFS export.
  no_access_hosts list success Hosts with no access to the NFS export.
  id str success The ID of the NFS export.
  path str success Local path to a location within the file system.
  read_write_root_hosts list success Hosts with read and write for root user access to the NFS export.
  read_only_root_hosts list success Hosts with read-only for root user access to the NFS export.
  description str success The description for the NFS export.
  default_access str success Default access level for all hosts that can access the export.
changed bool always Whether or not the resource has changed

Authors


Protection Policy Module

Perform Protection policy operations on PowerStore storage system.

Synopsis

Performs all protection policy operations on PowerStore Storage System. This modules supports get details of an existing protection policy. Create new protection policy with existing Snapshot Rule or replication rule. Modify protection policy to change the name and description, and add or remove existing snapshot rules/ replication rule. Delete an existing protection policy.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
snapshotrule_state str
  • present-in-policy
  • absent-in-policy

String variable. Indicates the state of a snapshotrule in a protection policy.
When snapshot rules are specified, this variable is required.
present-in-policy indicates to add to protection policy.
absent-in-policy indicates to remove from protection policy.
array_ip str True
IP or FQDN of the PowerStore management system.
name str
String variable. Indicates the name of the protection policy.
new_name str
String variable. Indicates the new name of the protection policy.
Used for renaming operation
description str
String variable. Indicates the description of the protection policy.
replicationrule str
The name or ids of the replcation rule which is to be added to the protection policy.
To remove the replication rule, an empty string has to be passed.
snapshotrules list
elements: str

List of strings to specify the name or ids of snapshot rules which are to be added or removed, to or from, the protection policy.
protectionpolicy_id str
String variable. Indicates the id of the protection policy.
password str True
The password of the PowerStore host.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
state str True
  • present
  • absent

String variable. Indicates the state of protection policy.
For Delete operation only, it should be set to "absent"
For all other operations like Create, Modify or Get details, it should be set to "present"
user str True
The username of the PowerStore host.

Notes

  • Before deleting a protection policy, the replication rule has to be removed from the protection policy.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Create a protection policy with snapshot rule and replication rule
  protectionpolicy:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    name: "{{name}}"
    description: "{{description}}"
    snapshotrules:
      - "Ansible_test_snap_rule_1"
    replicationrule: "ansible_replication_rule_1"
    snapshotrule_state: "present-in-policy"
    state: "present"


- name : Modify protection policy, change name
  protectionpolicy:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    name: "{{name}}"
    new_name: "{{new_name}}"
    state: "present"


- name : Modify protection policy, add snapshot rule
  protectionpolicy:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    name: "{{name}}"
    snapshotrules:
      - "Ansible_test_snaprule_1"
    snapshotrule_state: "present-in-policy"
    state: "present"

- name : Modify protection policy, remove snapshot rule, replication rule
  protectionpolicy:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    name: "{{name}}"
    snapshotrules:
      - "Ansible_test_to_be_removed"
    replicationrule: ""
    snapshotrule_state: "absent-in-policy"
    state: "present"

- name : Get details of protection policy by name
  protectionpolicy:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    name: "{{name}}"
    state: "present"

- name : Get details of protection policy by ID
  protectionpolicy:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    protectionpolicy_id: "{{protectionpolicy_id}}"
    state: "present"

- name : Delete protection policy
  protectionpolicy:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    name: "{{name}}"
    state: "absent"

Return Values

Key Type Returned Description
protectionpolicy_details complex When protection policy exists Details of the protection policy
  type str success The type for the protection policy
  replication_rules complex success The replication rule details of the protection policy.
    id str success The replication rule ID of the protection policy.
    name str success The replication rule name of the protection policy.
  id str success The system generated ID given to the protection policy.
  snapshot_rules complex success The snapshot rules details of the protection policy.
    id str success The snapshot rule ID of the protection policy.
    name str success The snapshot rule name of the protection policy.
  name str success Name of the protection policy.
  description str success description about the protection policy.
changed bool always Whether or not the resource has changed.

Authors


Quota Module

Manage Tree Quotas and User Quotas on PowerStore.

Synopsis

Managing Quotas on Powerstore storage system includes getting details, modifying, creating and deleting Quotas.

Parameters

Parameter Type Required Default Choices Description
quota dict
Specifies Quota parameters.
  soft_limit int
Soft limit of the User/Tree quota.
No Soft limit when set to 0.
  hard_limit int
Hard limit of the user quota.
No hard limit when set to 0.
  cap_unit str GB
  • GB
  • TB

Unit of storage for the hard and soft limits.
This parameter is required if limit is specified.
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
uid int
The ID of the unix user account for which quota operations will be performed.
Any one among uid/unix_name/windows_name/windows_sid is required when quota_type is 'user'.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
quota_type str
  • user
  • tree

The type of quota which will be imposed.
state str True
  • absent
  • present

Define whether the Quota should exist or not.
present indicates that the Quota should exist on the system.
absent indicates that the Quota should not exist on the system.
unix_name str
The name of the unix user account for which quota operations will be performed.
Any one among uid/unix_name/windows_name/windows_sid is required when quota_type is 'user'.
filesystem str
The ID/Name of the filesystem for which the Tree/User Quota will be created.
If filesystem name is specified, then nas_server is required to uniquely identify the filesystem.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
windows_sid str
The SID of the Windows User account for which quota operations will be performed.
Any one among uid/unix_name/windows_name/windows_sid is required when quota_type is 'user'.
user str True
The username of the PowerStore host.
password str True
The password of the PowerStore host.
path str
The path on which the quota will be imposed.
Path is relative to the root of the filesystem.
For user quota, if path is not specified, quota will be created at the root of the filesystem.
quota_id str
Id of the user/tree quota.
If quota_id is mentioned, then path/nas_server/file_system/quota_type is not required.
description str
Additional information that can be mentioned for a Tree Quota.
Description parameter can only be used when quota_type is 'tree'
windows_name str
The name of the Windows User for which quota operations will be performed.
The name should be mentioned along with Domain Name as 'DOMAIN_NAME\user_name' or as "DOMAIN_NAME\\user_name".
Any one among uid/unix_name/windows_name/windows_sid is required when quota_type is 'user'.
array_ip str True
IP or FQDN of the PowerStore management system.
nas_server str
The NAS server. This could be the name or ID of the NAS server.

Notes

  • Tree quota can't be created at the root of the filesystem.
  • When the ID of the filesystem is passed then nas_server is not required. If passed, then filesystem should exist for the nas_server, else the task will fail.
  • If a primary directory of the current directory or a subordinate directory of the path is having a Tree Quota configured, then the quota for that path can't be created. Hierarchical tree quotas are not allowed.
  • When the first quota is created for a directory/user in a filesystem then the quotas will be enabled for that filesystem automatically.
  • If a user quota is to be created on a tree quota, then the user quotas will be enabled automatically in a tree quota.
  • Delete User Quota operation is not supported.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

    - name: Create a Quota for a User using unix name
      quota:
        array_ip: "{{array_ip}}"
        verifycert: "{{verify_cert}}"
        user: "{{user}}"
        password: "{{password}}"
        quota_type: "user"
        unix_name: "{{unix_name}}"
        filesystem: "sample_fs"
        nas_server: "{{nas_server_id}}"
        quota:
          soft_limit: 5
          hard_limit: 10
          cap_unit: "TB"
        state: "present"

    - name: Create a Tree Quota
      quota:
        array_ip: "{{array_ip}}"
        verifycert: "{{verify_cert}}"
        user: "{{user}}"
        password: "{{password}}"
        quota_type: "tree"
        path: "/home"
        filesystem: "sample_fs"
        nas_server: "sample_nas_server"
        quota:
          soft_limit: 5
          hard_limit: 10
          cap_unit: "TB"
        state: "present"

    - name: Modify attributes for Tree Quota
      quota:
        array_ip: "{{array_ip}}"
        verifycert: "{{verify_cert}}"
        user: "{{user}}"
        password: "{{password}}"
        quota_id: "{{quota_id}}"
        quota:
          soft_limit: 10
          hard_limit: 15
          cap_unit: "TB"
        state: "present"

    - name: Get details of User Quota
      quota:
        array_ip: "{{array_ip}}"
        verifycert: "{{verify_cert}}"
        user: "{{user}}"
        password: "{{password}}"
        quota_type: "user"
        uid: 100
        path: "/home"
        filesystem: "{{filesystem_id}}"
        state: "present"

    - name: Get details of Tree Quota
      quota:
        array_ip: "{{array_ip}}"
        verifycert: "{{verify_cert}}"
        user: "{{user}}"
        password: "{{password}}"
        quota_id: "{{quota_id}}"
        state: "present"

    - name: Delete a Tree Quota
      quota:
        array_ip: "{{array_ip}}"
        verifycert: "{{verify_cert}}"
        user: "{{user}}"
        password: "{{password}}"
        quota_type: "tree"
        path: "/home"
        filesystem: "sample_fs"
        nas_server: "sample_nas_server"
        state: "absent"

Return Values

Key Type Returned Description
changed bool always Whether or not the resource has changed
quota_details complex When Quota exists. The quota details.
  uid int success The ID of the unix host for which user quota exists. Only applicable for user quotas.
  file_system complex success Includes ID and Name of filesystem and nas server for which smb share exists.
    id str success ID of filesystem.
    filesystem_type str success Type of filesystem.
    nas_server dict success nas_server of filesystem.
    name str success Name of filesystem.
  windows_name str success The Name of the Windows host for which user quota exists. Only applicable for user quotas.
  remaining_grace_period int success The time period remaining after which the grace period will expire.
  tree_quota_id str success ID of the Tree Quota on which the specific User Quota exists. Only applicable for user quotas.
  state_l10n str success Localized message string corresponding to state.
  unix_name str success The Name of the unix host for which user quota exists. Only applicable for user quotas.
  hard_limit(cap_unit) int success Value of the Hard Limit imposed on the quota.
  soft_limit(cap_unit) int success Value of the Soft Limit imposed on the quota.
  windows_sid str success The SID of the windows host for which user quota exists. Only applicable for user quotas.
  id str success The ID of the Quota.
  size_used int success Size currently consumed by Tree/User on the filesystem.
  tree_quota_for_user_quota complex success Additional Information of Tree Quota limits on which user quota exists. Only applicable for User Quotas.
    path str success The path on which the quota will be imposed.
    description str success Description of Tree Quota for user quota.
    hard_limit(cap_unit) int success Value of the Hard Limit imposed on the quota.
  description str success Additional information about the tree quota. Only applicable for Tree Quotas.
  state str success State of the user quota or tree quota record period. OK means No quota limits are exceeded. Soft_Exceeded means Soft limit is exceeded, and grace period is not expired. Soft_Exceeded_And_Expired means Soft limit is exceeded, and grace period is expired. Hard_Reached means Hard limit is reached.

Authors


Remote System Module

Remote system operations on a PowerStore storage system.

Synopsis

Performs all remote system operations on a PowerStore Storage System. This module supports get details of an existing remote systems, create/Add new remote system for all supported parameters, modify remote system with supported parameters and delete/remove a specific remote system.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
remote_port int 443
Remote system's port number.
It can be mentioned only during creation of the remote system.
description str
Additional information about the remote system.
To remove the description empty string is to be passed.
remote_address str
Management IP of the remote system.
remote_id and remote_address are mutually exclusive.
state str True
  • present
  • absent

The state of the remote system after the task is performed.
For Delete operation only, it should be set to "absent".
For all Create, Modify or Get details operations it should be set to "present".
wait_for_completion bool False
  • True
  • False

Flag to indicate if the operation should be run synchronously or asynchronously.
True signifies synchronous execution.
By default, modify and delete operation will run asynchronously.
remote_name str
Name of the remote system.
remote_name cannot be mentioned during addition of a new remote system.
remote_password str
Password used in basic authentication to remote PowerStore cluster.
It can be mentioned only during creation of the remote system.
array_ip str True
IP or FQDN of the PowerStore management system.
network_latency str
  • Low
  • High

Replication traffic can be tuned for higher efficiency depending on the expected network latency.
Setting to low will have latency of less than five milliseconds.
Setting to high will have latency of more than five milliseconds.
new_remote_address str
New management IP of the remote system.
password str True
The password of the PowerStore host.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
remote_id str
ID of the remote system.
ID for the remote system is autogenerated, cannot be passed during creation of a remote system.
remote_id and remote_address are mutually exclusive.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
user str True
The username of the PowerStore host.
remote_user str
Username used in basic authentication to remote PowerStore cluster.
It can be mentioned only during creation of the remote system.

Notes

  • The module support allows create/delete/update only for remote PowerStore arrays.
  • Get details can be done for all type of remote arrays.
  • remote_user, remote_port and remote_password are not required during modification, getting and deleting the remote system. If passed then these paramters will be ignored and the operation will be performed.
  • If wait_for_completion is set to True then the connection will be terminated after the timeout is exceeded. User can tweak timeout and pass it in the playbook task. By default, the timeout is set to 120 seconds.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Add a new remote system
  remotesystem:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    remote_address: "xxx.xxx.xxx.xxx"
    remote_user: "admin"
    remote_password: "{{remote_password}}"
    remote_port: 443
    network_latency: "Low"
    decription: "Adding a new remote system"
    state: "present"

- name: Modify attributes of remote system using remote_id
  remotesystem:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    remote_id: "7d7e7917-735b-3eef-8cc3-1302001c08e7"
    remote_address: "xxx.xxx.xxx.xxx"
    network_latency: "Low"
    wait_for_completion: True
    timeout: 300
    decription: "Updating the description"
    state: "present"

- name: Get details of remote system using remote_id
  remotesystem:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    remote_id: "D7d7e7917-735b-3eef-8cc3-1302001c08e7"
    state: "present"

- name: Delete remote system using remote_id
  remotesystem:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    remote_id: "D7d7e7917-735b-3eef-8cc3-1302001c08e7"
    state: "absent"

Return Values

Key Type Returned Description
remote_system_details complex When remote system exists Details of the remote system.
  user_name str success Username used to access the non-PowerStore remote systems.
  data_connections complex success ['List of data connections from each appliance in the local cluster to iSCSI target IP address.']
    initiator_address str success Initiating address from the local node.
    target_address str success Target address from the remote system.
    node_id str success Unique identifier of the local, initiating node.
    status str success Possible transit connection statuses.
  version str success ['Version of the remote system.', 'It was added in PowerStore version 2.0.0.0.']
  state str success ['Possible remote system states.', 'OK, Normal conditions.', 'Update_Needed, Verify and update needed to handle network configuration changes on the systems.', 'Management_Connection_Lost, Management connection to the remote peer is lost.']
  name str success Name of the remote system.
  data_network_latency str success ['Network latency choices for a remote system. Replication traffic can be tuned for higher efficiency depending on the expected network latency.', 'This will only be used when the remote system type is PowerStore.']
  session_chap_mode str success Challenge Handshake Authentication Protocol (CHAP) status.
  type str success Remote system connection type between the local system.
  discovery_chap_mode str success Challenge Handshake Authentication Protocol (CHAP) statu.
  id str success The system generated ID of the remote system.
  management_address str success The management cluster IP address of the remote system.
  data_connection_state str success Data connection states of a remote system.
  description str success User-specified description of the remote system instance.
  serial_number str success Serial number of the remote system instance.
job_details complex When wait_for_completion is not set to True. Details of the job.
  id str success The id of the job.
changed bool always Whether or not the resource has changed.

Authors


Replication Rule Module

Replication rule operations on a PowerStore storage system.

Synopsis

Performs all replication rule operations on a PowerStore Storage System. This module supports get details of an existing replication rule, create new replication rule for all supported parameters, modify replication rule with supported parameters and delete a specific replication rule.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
alert_threshold int
Acceptable delay between the expected and actual replication sync intervals. The system generates an alert if the delay between the expected and actual sync exceeds this threshold.
During creation, if not passed, then by default one RPO in minutes will be passed.
The range of integers supported are in between 0 and 1440 (inclusive of both).
replication_rule_id str
ID of the replication rule.
ID for the rule is autogenerated, cannot be passed during creation of a replication rule.
replication_rule_name and replication_rule_id are mutually exclusive.
remote_system_address str
The management IPv4 address of the remote system.
It is required in case the remote system name passed in remote_system parameter is not unique on the PowerStore Array.
If ID of the remote system is passed then no need to pass remote_system_address.
rpo str
  • Five_Minutes
  • Fifteen_Minutes
  • Thirty_Minutes
  • One_Hour
  • Six_Hours
  • Twelve_Hours
  • One_Day

Recovery point objective (RPO), which is the acceptable amount of data, measured in units of time, that may be lost in case of a failure.
replication_rule_name str
Name of the replication rule.
Required during creation of a replication rule.
replication_rule_name and replication_rule_id are mutually exclusive.
remote_system str
ID or name of the remote system to which this rule will replicate the associated resources.
user str True
The username of the PowerStore host.
array_ip str True
IP or FQDN of the PowerStore management system.
password str True
The password of the PowerStore host.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
state str True
  • present
  • absent

The state of the replication rule after the task is performed.
For Delete operation only, it should be set to "absent".
For all Create, Modify or Get details operations it should be set to "present".
new_name str
New name of the replication rule.
Used for renaming a replication rule.

Notes

  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Create new replication rule
  replicationrule:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    replication_rule_name: "sample_replication_rule"
    rpo: "Five_Minutes"
    alert_threshold: "15"
    remote_system: "WN-D8877"
    state: "present"

- name: Modify existing replication rule
  replicationrule:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    replication_rule_name: "sample_replication_rule"
    new_name: "new_sample_replication_rule"
    rpo: "One_Hour"
    alert_threshold: "60"
    remote_system: "WN-D0517"
    state: "present"

- name: Get details of replication rule
  replicationrule:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    replication_rule_id: "{{id}}"
    state: "present"

- name: Delete an existing replication rule
  replicationrule:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    replication_rule_name: "new_sample_replication_rule"
    state: "absent"

Return Values

Key Type Returned Description
changed bool always Whether or not the resource has changed.
replication_rule_details complex When replication rule exists Details of the replication rule.
  alert_threshold int success Acceptable delay in minutes between the expected and actual replication sync intervals.
  remote_system_id str success Unique identifier of the remote system to which this rule will replicate the associated resources.
  id str success The system generated ID of the replication rule.
  remote_system_name str success Name of the remote system to which this rule will replicate the associated resources.
  name str success Name of the replication rule.
  rpo str success Recovery point objective (RPO), which is the acceptable amount of data, measured in units of time, that may be lost in case of a failure.

Authors


Replication Session Module

Replication session operations on a PowerStore storage system.

Synopsis

Performs all replication session state change operations on a PowerStore Storage System. This module supports get details of an existing replication session. Updating the state of the replication session.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
volume str
Name/ID of the volume for which replication session exists.
volume_group, volume, and session_id are mutually exclusive.
user str True
The username of the PowerStore host.
password str True
The password of the PowerStore host.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
array_ip str True
IP or FQDN of the PowerStore management system.
session_id str
ID of the replication session.
volume_group, volume, and session_id are mutually exclusive.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
session_state str
  • failed_over
  • paused
  • synchronizing

State in which the replication session is present after performing the task.
volume_group str
Name/ID of the volume group for which a replication session exists.
volume_group, volume, and session_id are mutually exclusive.

Notes

  • Manual synchronization for a replication session is not supported through the Ansible module.
  • When the current state of the replication session is 'OK' and in the playbook task 'synchronizing', then it will return "changed" as False. This is because there is a scheduled synchronization in place with the associated replication rule's RPO in the protection policy.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Pause a replication session
  replicationsession:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    volume: "sample_volume_1"
    session_state: "paused"

- name: Synchronize a replication session
  replicationsession:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    volume: "sample_volume_1"
    session_state: "synchronizing"

- name: Get details of a replication session
  replicationsession:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    volume: "sample_volume_1"

- name: Fail over a replication session
  replicationsession:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    volume: "sample_volume_1"
    session_state: "failed_over"

Return Values

Key Type Returned Description
changed bool always Whether or not the resource has changed
replication_session_details complex When replication session exists Details of the replication session
  local_resource_id str success Unique identifier of the local storage resource for the replication session.
  estimated_completion_timestamp str success Estimated completion time of the current replication operation.
  role str success Role of the replication session. Source - The local resource is the source of the remote replication session. Destination - The local resource is the destination of the remote replication session.
  resource_type str success Storage resource type eligible for replication protection. volume - Replication session created on a volume. volume_group - Replication session created on a volume group.
  replication_rule_id str success Associated replication rule instance if created by policy engine.
  name str success Name of the replication rule.
  remote_resource_id str success Unique identifier of the remote storage resource for the replication session.
  last_sync_timestamp str success Time of last successful synchronization.
  remote_system_id str success Unique identifier of the remote system instance.
  id str success The system generated ID of the replication session. Unique across source and destination roles.
  state str success State of the replication session.
  progress_percentage int success Progress of the current replication operation.

Authors


Role Module

Get details of the roles present on the PowerStore storage system.

Synopsis

Manage role in PowerStore storage system includes getting the details of a role.

Parameters

Parameter Type Required Default Choices Description
role_id str
Id of the role.
role_name str
Name of the role.
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
state str True
  • absent
  • present

Define whether the role should exist or not.
present, indicates that the role should exist on the system.
absent, indicates that the role should not exist on the system.
password str True
The password of the PowerStore host.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
array_ip str True
IP or FQDN of the PowerStore management system.
user str True
The username of the PowerStore host.

Notes

  • Only getting the details of the role is supported by the ansible module.
  • Creation, modification and deletion of roles is not supported by the ansible modules.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Get the details of role by name
  role:
    array_ip: "{{array_ip}}"
    verifycert: "{{verify_cert}}"
    user: "{{user}}"
    password: "{{password}}"
    role_name: "Administrator"
    state: "present"

- name: Get the details of role by id
  role:
    array_ip: "{{array_ip}}"
    verifycert: "{{verify_cert}}"
    user: "{{user}}"
    password: "{{password}}"
    role_id: "1"
    state: "present"

Return Values

Key Type Returned Description
role_details complex When role exists. The role details.
  is_built_in bool success Indicates whether the role is built-in.
  id str success The ID of the role.
  description str success Description of the role.
  name str success The name of the role.
changed bool always Whether or not the resource has changed.

Authors


Security Config Module

Security configuration operations on PowerStore Storage System.

Synopsis

Managing security configuration on PowerStore storage system includes getting details and modifying security configuration parameters.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
security_config_id int True
ID of the security configuration.
Mandatory for all operations.
password str True
The password of the PowerStore host.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
state str True
  • absent
  • present

Define whether the security config should exist or not.
protocol_mode str
  • TLSv1_0
  • TLSv1_1
  • TLSv1_2

Protocol mode of the security configuration.
Mandatory only for modify operation.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
array_ip str True
IP or FQDN of the PowerStore management system.
user str True
The username of the PowerStore host.

Notes

  • Creation and deletion of security configs is not supported by Ansible modules.
  • Modification of protocol mode is only supported for PowerStore v2.0.0.0 and above.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Get security config
  security_config:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    security_config_id: 1
    state: "present"

- name: Modify attribute of security config
  security_config:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    security_config_id: 1
    protocol_mode: "TLSv1_1"
    state: "present"

Return Values

Key Type Returned Description
changed bool always Whether or not the resource has changed
security_config_details complex When security config exists Details of the security configuration.
  idle_timeout int success Idle time (in seconds) after which login sessions will expire and require re-authentication.
  protocol_mode str success The protocol mode of the security configuration.
  id str success The system generated ID given to the security configuration.

Authors


SMB Share Module

Manage SMB shares on a PowerStore storage system.

Synopsis

Managing SMB Shares on PowerStore storage system includes create, get, modify, and delete the SMB shares.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
umask str
The default UNIX umask for new files created on the SMB Share.
During creation, if not mentioned, then the default is "022".
For all other operations, the default is None.
is_encryption_enabled bool
Indicates whether encryption for SMB 3.0 is enabled at the shared folder level.
During creation, if not mentioned then default is False.
is_continuous_availability_enabled bool
Indicates whether continuous availability for SMB 3.0 is enabled.
During creation, if not mentioned, then the default is False.
share_name str
Name of the SMB share.
Required during creation of the SMB share.
For all other operations either share_name or share_id is required.
array_ip str True
IP or FQDN of the PowerStore management system.
snapshot str
The ID/Name of the Snapshot.
Either filesystem or snapshot is required for creation of the SMB share.
If snapshot name is specified, then nas_server is required to uniquely identify the snapshot.
If snapshot parameter is provided, then filesystem cannot be specified.
SMB share can be created only if access type of snapshot is "protocol".
offline_availability str
  • MANUAL
  • DOCUMENTS
  • PROGRAMS
  • NONE

Defines valid states of Offline Availability.
MANUAL- Only specified files will be available offline.
DOCUMENTS- All files that users open will be available offline.
PROGRAMS- Program will preferably run from the offline cache even when connected to the network. All files that users open will be available offline.
NONE- Prevents clients from storing documents and programs in offline cache.
filesystem str
The ID/Name of the File System.
Either filesystem or snapshot is required for creation of the SMB share.
If filesystem name is specified, then nas_server is required to uniquely identify the filesystem.
If filesystem parameter is provided, then snapshot cannot be specified.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
is_abe_enabled bool
Indicates whether Access-based Enumeration (ABE) for SMB share is enabled.
During creation, if not mentioned, then the default is False.
nas_server str
The ID/Name of the NAS Server.
It is not required if share_id is used.
password str True
The password of the PowerStore host.
path str
Local path to the file system/Snapshot or any existing sub-folder of the file system/Snapshot that is shared over the network.
Path is relative to the base of the NAS server and must start with the name of the filesystem.
Required for creation of the SMB share.
state str True
  • absent
  • present

Define whether the SMB share should exist or not.
present indicates that the share should exist on the system.
absent indicates that the share should not exist on the system.
share_id str
ID of the SMB share.
Should not be specified during creation. ID is auto generated.
For all other operations either share_name or share_id is required.
If share_id is used then no need to pass nas_server/filesystem/snapshot/ path.
description str
Description for the SMB share.
Optional parameter when creating a share.
To modify, pass the new value in description field.
is_branch_cache_enabled bool
Indicates whether Branch Cache optimization for SMB share is enabled.
During creation, if not mentioned then default is False.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
user str True
The username of the PowerStore host.

Notes

  • When the ID of the filesystem/snapshot is passed then nas_server is not required. If passed, then the filesystem/snapshot should exist for the nas_server, else the task will fail.
  • Multiple SMB shares can be created for the same local path.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Create SMB share for a filesystem
  smbshare:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    share_name: "sample_smb_share"
    filesystem: "sample_fs"
    nas_server: "{{nas_server_id}}"
    path: "{{path}}"
    description: "Sample SMB share created"
    is_abe_enabled: True
    is_branch_cache_enabled: True
    offline_availability: "DOCUMENTS"
    is_continuous_availability_enabled: True
    is_encryption_enabled: True
    state: "present"

- name: Modify Attributes of SMB share for a filesystem
  smbshare:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    share_name: "sample_smb_share"
    nas_server: "sample_nas_server"
    description: "Sample SMB share attributes updated"
    is_abe_enabled: False
    is_branch_cache_enabled: False
    offline_availability: "MANUAL"
    is_continuous_availability_enabled: False
    is_encryption_enabled: False
    umask: "022"
    state: "present"

- name: Create SMB share for a snapshot
  smbshare:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    share_name: "sample_snap_smb_share"
    snapshot: "sample_snapshot"
    nas_server: "{{nas_server_id}}"
    path: "{{path}}"
    description: "Sample SMB share created for snapshot"
    is_abe_enabled: True
    is_branch_cache_enabled: True
    is_continuous_availability_enabled: True
    state: "present"

- name: Modify Attributes of SMB share for a snapshot
  smbshare:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    share_name: "sample_snap_smb_share"
    nas_server: "sample_nas_server"
    description: "Sample SMB share attributes updated for snapshot"
    is_abe_enabled: False
    is_branch_cache_enabled: False
    offline_availability: "MANUAL"
    is_continuous_availability_enabled: False
    umask: "022"
    state: "present"

- name: Get details of SMB share
  smbshare:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    share_id: "{{smb_share_id}}"
    state: "present"

- name: Delete SMB share
  smbshare:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    share_id: "{{smb_share_id}}"
    state: "absent"

Return Values

Key Type Returned Description
smb_share_details complex When share exists. The SMB share details.
  is_branch_cache_enabled bool success Whether branch cache is enabled or not.
  file_system complex success Includes ID and Name of filesystem and nas server for which smb share exists.
    id str success ID of filesystem.
    filesystem_type str success Type of filesystem.
    nas_server dict success nas_server of filesystem.
    name str success Name of filesystem.
  is_encryption_enabled bool success Whether encryption is enabled or not.
  is_continuous_availability_enabled bool success Whether the share will be available continuously or not.
  id str success The ID of the SMB share.
  is_ABE_enabled bool success Whether Access Based enumeration is enforced or not
  name str success Name of the SMB share.
  description str success Additional information about the share.
changed bool always Whether or not the resource has changed

Authors


Snapshot Module

Manage Snapshots on Dell EMC PowerStore.

Synopsis

Managing Snapshots on PowerStore storage system, Create a new Volume Group Snapshot, Get details of Volume Group Snapshot, Modify Volume Group Snapshot, Delete an existing Volume Group Snapshot, Create a new Volume Snapshot, Get details of Volume Snapshot, Modify Volume Snapshot, Delete an existing Volume Snapshot.

Parameters

Parameter Type Required Default Choices Description
expiration_timestamp str
The expiration timestamp of the Snapshot. This should be provided in UTC format, e.g 2019-07-24T10:54:54Z.
volume str
The volume. This could be the volume name or ID.
retention_unit str
  • hours
  • days

The unit for retention.
If this unit is not specified, 'hours' is taken as default retention_unit.
If desired_retention is specified, expiration_timestamp cannot be specified.
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
new_snapshot_name str
The new name of the Snapshot.
volume_group str
The volume group. This could be the volume group name or ID.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
snapshot_name str
The name of the Snapshot. Either snapshot name or ID is required.
array_ip str True
IP or FQDN of the PowerStore management system.
password str True
The password of the PowerStore host.
desired_retention str
The retention value for the Snapshot.
If the retention value is not specified, the Snapshot details would be returned.
To create a Snapshot, either a retention or expiration timestamp must be given.
If the Snapshot does not have any retention value - specify it as 'None'.
snapshot_id str
The ID of the Snapshot. Either snapshot ID or Snapshot name is required.
description str
The description for the Snapshot.
state str True
  • absent
  • present

Defines whether the Snapshot should exist or not.
user str True
The username of the PowerStore host.

Notes

  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

    - name: Create a volume snapshot on PowerStore
      snapshot:
        array_ip: "{{mgmt_ip}}"
        verifycert: "{{verifycert}}"
        user: "{{user}}"
        password: "{{password}}"
        snapshot_name: "{{snapshot_name}}"
        volume: "{{volume}}"
        description: "{{description}}"
        desired_retention: "{{desired_retention}}"
        retention_unit: "{{retention_unit_days}}"
        state: "{{state_present}}"

    - name: Get details of a volume snapshot
      snapshot:
        array_ip: "{{mgmt_ip}}"
        verifycert: "{{verifycert}}"
        user: "{{user}}"
        password: "{{password}}"
        snapshot_name: "{{snapshot_name}}"
        volume: "{{volume}}"
        state: "{{state_present}}"

    - name: Rename volume snapshot
      snapshot:
        array_ip: "{{mgmt_ip}}"
        verifycert: "{{verifycert}}"
        user: "{{user}}"
        password: "{{password}}"
        snapshot_name: "{{snapshot_name}}"
        new_snapshot_name: "{{new_snapshot_name}}"
        volume: "{{volume}}"
        state: "{{state_present}}"

    - name: Delete volume snapshot
      snapshot:
        array_ip: "{{mgmt_ip}}"
        verifycert: "{{verifycert}}"
        user: "{{user}}"
        password: "{{password}}"
        snapshot_name: "{{new_snapshot_name}}"
        volume: "{{volume}}"
        state: "{{state_absent}}"

    - name: Create a volume group snapshot on PowerStore
      snapshot:
        array_ip: "{{mgmt_ip}}"
        verifycert: "{{verifycert}}"
        user: "{{user}}"
        password: "{{password}}"
        snapshot_name: "{{snapshot_name}}"
        volume_group: "{{volume_group}}"
        description: "{{description}}"
        expiration_timestamp: "{{expiration_timestamp}}"
        state: "{{state_present}}"

    - name: Get details of a volume group snapshot
      snapshot:
        array_ip: "{{mgmt_ip}}"
        verifycert: "{{verifycert}}"
        user: "{{user}}"
        password: "{{password}}"
        snapshot_name: "{{snapshot_name}}"
        volume_group: "{{volume_group}}"
        state: "{{state_present}}"

    - name: Modify volume group snapshot expiration timestamp
      snapshot:
        array_ip: "{{mgmt_ip}}"
        verifycert: "{{verifycert}}"
        user: "{{user}}"
        password: "{{password}}"
        snapshot_name: "{{snapshot_name}}"
        volume_group: "{{volume_group}}"
        description: "{{description}}"
        expiration_timestamp: "{{expiration_timestamp_new}}"
        state: "{{state_present}}"

    - name: Rename volume group snapshot
      snapshot:
        array_ip: "{{mgmt_ip}}"
        verifycert: "{{verifycert}}"
        user: "{{user}}"
        password: "{{password}}"
        snapshot_name: "{{snapshot_name}}"
        new_snapshot_name: "{{new_snapshot_name}}"
        volume_group: "{{volume_group}}"
        state: "{{state_present}}"

    - name: Delete volume group snapshot
      snapshot:
        array_ip: "{{mgmt_ip}}"
        verifycert: "{{verifycert}}"
        user: "{{user}}"
        password: "{{password}}"
        snapshot_name: "{{new_snapshot_name}}"
        volume_group: "{{volume_group}}"
        state: "{{state_absent}}"

Return Values

Key Type Returned Description
filesystem_snap_details dict When snapshot exists. Details of the snapshot.
  access_type str success Displays the type of access allowed to the snapshot.
  expiration_timestamp str success The date and time the snapshot is due to be automatically deleted by the system.
  parent_id str success ID of the filesystem on which snapshot is taken.
  nas_server dict success Details of NAS server on which snapshot is present.
    id str success ID of the NAS server.
    name str success Name of the NAS server
  name str success The name of the snapshot.
  description str success Description of the filesystem snapshot.
  id str success Unique identifier of the filesystem snapshot instance.
  parent_name str success Name of the filesystem on which snapshot is taken.
  creation_timestamp str success The date and time the snapshot was created.
delete_fs_snap bool always Whether or not the resource has deleted
changed bool always Whether or not the resource has changed
modify_fs_snap bool always Whether or not the resource has modified
create_fs_snap bool always Whether or not the resource has created

Authors


Snapshot Rule Module

Snapshot Rule operations on a PowerStore storage system.

Synopsis

Performs all snapshot rule operations on PowerStore Storage System. This modules supports get details of an existing snapshot rule, create new Snapshot Rule with Interval, create new Snapshot Rule with specific time and days_of_week with all supported parameters. Modify Snapshot Rule with supported parameters. Delete a specific Snapshot Rule.

Parameters

Parameter Type Required Default Choices Description
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
days_of_week list
elements: str
  • Monday
  • Tuesday
  • Wednesday
  • Thursday
  • Friday
  • Saturday
  • Sunday

List of strings to specify days of the week on which the Snapshot rule. should be applied. Must be applied for Snapshot rules where the 'time_of_day' parameter is set. Optional for the Snapshot rule created with an interval. When 'days_of_week' is not specified for a new Snapshot rule, the rule is applied on every day of the week.
snapshotrule_id str
String variable. Indicates the ID of the Snapshot rule.
state str True
  • present
  • absent

String variable indicates the state of Snapshot rule.
For "Delete" operation only, it should be set to "absent".
For all Create, Modify or Get details operation it should be set to "present".
password str True
The password of the PowerStore host.
new_name str
String variable. Indicates the new name of the Snapshot rule.
Used for renaming operation
interval str
  • Five_Minutes
  • Fifteen_Minutes
  • Thirty_Minutes
  • One_Hour
  • Two_Hours
  • Three_Hours
  • Four_Hours
  • Six_Hours
  • Eight_Hours
  • Twelve_Hours
  • One_Day

String variable. Indicates the interval between Snapshots.
When creating a Snapshot rule, specify either "interval" or "time_of_day", but not both.
delete_snaps bool
Boolean variable to specify whether all Snapshots previously created by this rule should also be deleted when this rule is removed.
True specifies to delete all previously created Snapshots by this rule while deleting this rule.
False specifies to retain all previously created Snapshots while deleting this rule
time_of_day str
String variable. Indicates the time of the day to take a daily Snapshot, with the format "hh:mm" in 24 hour time format
When creating a Snapshot rule, specify either "interval"or "time_of_day" but not both.
name str
String variable. Indicates the name of the Snapshot rule.
desired_retention int
Integer variable. Indicates the desired Snapshot retention period.
It is required when creating a new Snapshot rule.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
array_ip str True
IP or FQDN of the PowerStore management system.
user str True
The username of the PowerStore host.

Notes

  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Get details of an existing snapshot rule by name
  snapshotrule:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    name: "{{name}}"
    state: "present"

- name: Get details of an existing snapshot rule by id
  snapshotrule:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    snapshotrule_id: "{{snapshotrule_id}}"
    state: "present"

- name: Create new snapshot rule by interval
  snapshotrule:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    name: "{{name}}"
    interval: "{{interval}}"
    days_of_week:
          - Monday
    desired_retention: "{{desired_retention}}"
    state: "present"


- name: Create new snapshot rule by time_of_day and days_of_week
  snapshotrule:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    name: "{{name}}"
    desired_retention: "{{desired_retention}}"
    days_of_week:
      - Monday
      - Wednesday
      - Friday
    time_of_day: "{{time_of_day}}"
    state: "present"

- name: Modify existing snapshot rule to time_of_day and days_of_week
  snapshotrule:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    name: "{{name}}"
    days_of_week:
      - Monday
      - Wednesday
      - Friday
      - Sunday
    time_of_day: "{{time_of_day}}"
    state: "present"

- name: Modify existing snapshot rule to interval
  snapshotrule:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    name: "{{name}}"
    interval: "{{interval}}"
    state: "present"

- name: Delete an existing snapshot rule by name
  snapshotrule:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    name: "{{name}}"
    state: "absent"

Return Values

Key Type Returned Description
snapshotrule_details complex When snapshot rule exists Details of the snapshot rule.
  interval str success The interval between snapshots.
  days_of_week list success List of string to specify days of the week on which the rule should be applied.
  time_of_day str success The time of the day to take a daily snapshot.
  policies complex success The protection policies details of the snapshot rule.
    id str success The protection policy ID in which the snapshot rule is selected.
    name str success Name of the protection policy in which the snapshot rule is selected.
  desired_retention int success Desired snapshot retention period.
  name str success Name of the snapshot rule.
  id str success The system generated ID given to the snapshot rule.
changed bool always Whether or not the resource has changed.

Authors


Volume Module

Manage volumes on a PowerStore storage system.

Synopsis

Managing volume on PowerStore storage system includes create volume, get details of volume, modify name, size, description, protection policy, performance policy, map or unmap volume to host/host group, and delete volume.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
size float
Size of the volume. Minimum volume size is 1MB. Maximum volume size is 256TB. Size must be a multiple of 8192.
Required in case of create and expand volume.
mapping_state str
  • mapped
  • unmapped

Define whether the volume should be mapped to a host or hostgroup.
mapped - indicates that the volume should be mapped to the host or host group.
unmapped - indicates that the volume should not be mapped to the host or host group.
Only one of a host or host group can be supplied in one call.
hlu int
Logical unit number for the host/host group volume access.
Optional parameter when mapping a volume to host/host group.
HLU modification is not supported.
vg_name str
The name of the volume group. A volume can optionally be assigned to a volume group at the time of creation.
Use the Volume Group Module for modification of the assignment.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
password str True
The password of the PowerStore host.
hostgroup str
Hostgroup to be mapped/unmapped to a volume. If not specified, an unmapped volume is created.
Only one of the host or host group can be mapped in one call.
To represent a hostgroup, both name or ID can be used interchangeably. The module will detect both.
host str
Host to be mapped/unmapped to a volume. If not specified, an unmapped volume is created. Only one of the host or host group can be supplied in one call.
To represent host, both name or ID can be used interchangeably. The module will detect both.
cap_unit str
  • MB
  • GB
  • TB

Volume size unit.
Used to signify unit of the size provided for creation and expansion of volume.
It defaults to 'GB', if not specified.
vol_name str
Unique name of the volume. This value must contain 128 or fewer printable unicode characters.
Required when creating a volume. All other functionalities on a volume are supported using volume name or ID.
vol_id str
The 36 character long ID of the volume, automatically generated when a volume is created.
Cannot be used while creating a volume. All other functionalities on a volume are supported using volume name or ID.
new_name str
The new volume name for the volume, used in case of rename functionality.
array_ip str True
IP or FQDN of the PowerStore management system.
protection_policy str
The protection_policy of the volume.
To represent policy, both name or ID can be used interchangably. The module will detect both.
A volume can be assigned a protection policy at the time of creation of volume or later as well.
The policy can also be changed for a given volume by simply passing the new value.
The policy can be removed by passing an empty string.
Check examples for more clarity.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
performance_policy str
  • high
  • medium
  • low

The performance_policy for the volume.
A volume can be assigned a performance policy at the time of creation of the volume, or later as well.
The policy can also be changed for a given volume, by simply passing the new value.
Check examples for more clarity.
If not given, performance policy will be 'medium'.
description str
Description for the volume.
Optional parameter when creating a volume.
To modify, pass the new value in description field.
state str True
  • absent
  • present

Define whether the volume should exist or not.
present - indicates that the volume should exist on the system.
absent - indicates that the volume should not exist on the system.
user str True
The username of the PowerStore host.

Notes

  • To create a new volume, vol_name and size is required. cap_unit, description, vg_name, performance_policy, and protection_policy are optional.
  • new_name should not be provided when creating a new volume.
  • size is a required parameter for expand volume.
  • Clones or Snapshots of a deleted production volume or a clone are not deleted.
  • A volume that is attached to a host/host group, or that is part of a volume group cannot be deleted.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Create stand-alone volume
  volume:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vol_name: "{{vol_name}}"
    size: 1
    cap_unit: "{{cap_unit}}"
    state: 'present'

- name: Create stand-alone volume with performance and protection policy
  volume:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vol_name: "{{vol_name}}"
    size: 5
    cap_unit: "{{cap_unit}}"
    state: 'present'
    description: 'Description'
    performance_policy: 'low'
    protection_policy: 'protection_policy_name'

- name: Create volume and assign to a volume group
  volume:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vol_name: "{{vol_name}}"
    vg_name: "{{vg_name}}"
    size: 1
    cap_unit: "{{cap_unit}}"
    state: 'present'

- name: Create volume and map it to a host
  volume:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vol_name: "{{vol_name}}"
    size: 1
    cap_unit: "{{cap_unit}}"
    mapping_state: 'mapped'
    host: "{{host_name}}"
    state: 'present'

- name: Get volume details using ID
  volume:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vol_id: "{{result.volume_details.id}}"
    state: "present"

- name: Get volume details using name
  volume:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vol_name: "{{vol_name}}"
    state: "present"

- name: Modify volume size, name, description and performance policy
  volume:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    new_name: "{{new_name}}"
    vol_name: "{{vol_name}}"
    state: "present"
    size: 2
    performance_policy: 'high'
    description: 'new description'

- name: Remove protection policy from Volume
  volume:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    new_name: "{{new_name}}"
    vol_name: "{{vol_name}}"
    state: "present"
    protection_policy: ""

- name: Map volume to a host with HLU
  volume:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vol_name: "{{vol_name}}"
    state: 'present'
    mapping_state: 'mapped'
    host: 'host1'
    hlu: 12

- name: Map volume to a host without HLU
  volume:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vol_name: "{{vol_name}}"
    state: 'present'
    mapping_state: 'mapped'
    host: 'host2'

- name: Delete volume
  volume:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vol_id: "{{result.volume_details.id}}"
    state: "absent"

Return Values

Key Type Returned Description
volume_details complex When volume exists Details of the volume.
  hlu_details complex success HLU details for mapped host/host group.
    host_group_id str success The host group ID mapped to the volume.
    logical_unit_number int success Logical unit number for the host/host group volume access.
    host_id str success The host ID mapped to the volume.
    id str success The HLU ID.
  size int success Size of the volume.
  nsid int success NVMe Namespace unique identifier in the NVME subsystem. Used for volumes attached to NVMEoF hosts.
  nguid int success NVMe Namespace globally unique identifier. Used for volumes attached to NVMEoF hosts.
  protection_policy_id str success The protection policy of the volume.
  id str success The system generated ID given to the volume.
  host complex success Hosts details mapped to the volume.
    id str success The host ID mapped to the volume.
    name str success Name of the Host mapped to the volume.
  host_group complex success Host groups details mapped to the volume.
    id str success The host group ID mapped to the volume.
    name str success Name of the Host group mapped to the volume.
  volume_groups complex success The volume group details of the volume.
    id str success The system generated ID given to the volume group.
    name str success Name of the volume group.
  mapped_volumes complex success This is the inverse of the resource type host_volume_mapping association.
    logical_unit_number int success Logical unit number for the host volume access.
    id str success Unique identifier of a mapping between a host and a volume.
  wwn str success The world wide name of the volume.
  name str success Name of the volume.
  performance_policy_id str success The performance policy for the volume.
  description str success description about the volume.
  node_affinity str success This attribute shows which node will be advertised as the optimized IO path to the volume.
changed bool always Whether or not the resource has changed.

Authors


Volume Group Module

Manage volume groups on a PowerStore Storage System

Synopsis

Managing volume group on PowerStore Storage System includes creating new volume group, adding volumes to volume group, removing volumes from volume group, renaming volume group, modifying volume group, and deleting volume group.

Parameters

Parameter Type Required Default Choices Description
verifycert bool True
  • True
  • False

Boolean variable to specify whether to validate SSL certificate or not.
True - indicates that the SSL certificate should be verified. Set the environment variable REQUESTS_CA_BUNDLE to the path of the SSL certificate.
False - indicates that the SSL certificate should not be verified.
vg_id str
The id of the volume group.
It can be used only for Modify, Add/Remove, or Delete operation.
new_vg_name str
The new name of the volume group.
volumes list
elements: str

This is a list of volumes.
Either the volume ID or name must be provided for adding/removing existing volumes from a volume group.
If volumes are given, then vol_state should also be specified.
vg_name str
The name of the volume group.
timeout int 120
Time after which the connection will get terminated.
It is to be mentioned in seconds.
protection_policy str
String variable. Represents Protection policy id or name used for volume group.
Specifying an empty string or "" removes the existing protection policy from volume group.
vol_state str
  • present-in-group
  • absent-in-group

String variable. Describes the state of volumes inside a volume group.
If volume is given, then vol_state should also be specified.
is_write_order_consistent bool
A boolean flag to indicate whether Snapshot sets of the volume group will be write-order consistent.
If this parameter is not specified, the array by default sets it to true.
array_ip str True
IP or FQDN of the PowerStore management system.
password str True
The password of the PowerStore host.
port int
Port number for the PowerStore array.
If not passed, it will take 443 as default.
description str
Description about the volume group.
state str True
  • absent
  • present

Define whether the volume group should exist or not.
user str True
The username of the PowerStore host.

Notes

  • vol_state is mandatory if volumes are provided.
  • A protection policy can be specified either for an volume group, or for the individual volumes inside the volume group.
  • A volume can be a member of at most one volume group.
  • Specifying "protection_policy" as empty string or "" removes the existing protection policy from a volume group.
  • The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.

Examples

- name: Create volume group without protection policy
  volumegroup:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vg_name: "{{vg_name}}"
    description: "This volume group is for ansible"
    state: "present"

- name: Get details of volume group
  volumegroup:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vg_name: "{{vg_name}}"
    state: "present"

- name: Add volumes to volume group
  volumegroup:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vg_name: "{{vg_name}}"
    state: "present"
    volumes:
      - "7f879569-676c-4749-a06f-c2c30e09b295"
      - "68e4dad5-5de5-4644-a98f-6d4fb916e169"
      - "Ansible_Testing"
    vol_state: "present-in-group"

- name: Remove volumes from volume group
  volumegroup:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vg_name: "{{vg_name}}"
    state: "present"
    volumes:
      - "7f879569-676c-4749-a06f-c2c30e09b295"
      - "Ansible_Testing"
    vol_state: "absent-in-group"

- name: Rename volume group and change is_write_order_consistent flag
  volumegroup:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vg_name: "{{vg_name}}"
    new_vg_name: "{{new_vg_name}}"
    is_write_order_consistent: False
    state: "present"

- name: Get details of volume group by ID
  volumegroup:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    vg_id: "{{vg_id}}"
    state: "present"

- name: Delete volume group
  volumegroup:
    array_ip: "{{array_ip}}"
    verifycert: "{{verifycert}}"
    user: "{{user}}"
    password: "{{password}}"
    name: "{{new_vg_name}}"
    state: "absent"

Return Values

Key Type Returned Description
volume_group_details complex When volume group exists Details of the volume group.
  type str success The type of the volume group.
  is_write_order_consistent bool success A boolean flag to indicate whether snapshot sets of the volume group will be write-order consistent.
  name str success Name of the volume group.
  volumes complex success The volumes details of the volume group.
    id str success The system generated ID given to the volume associated with the volume group.
    name str success The name of the volume associated with the volume group.
  protection_policy_id str success The protection policy of the volume group.
  id str success The system generated ID given to the volume group.
  description str success description about the volume group.
remove_vols_from_vg bool When value exists A boolean flag to indicate whether volume/s got removed from volume group.
changed bool always Whether or not the resource has changed.
add_vols_to_vg bool When value exists A boolean flag to indicate whether volume/s got added to volume group.
create_vg bool When value exists A boolean flag to indicate whether volume group got created.
delete_vg bool When value exists A boolean flag to indicate whether volume group got deleted.
modify_vg bool When value exists A boolean flag to indicate whether volume group got modified.

Authors