© 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.
- Certificate Module
- Cluster Module
- File System Module
- Filesystem Snapshot Module
- Host Module
- Host Group Module
- Info Module
- Job Module
- Local User Module
- NAS Server Module
- Network Module
- NFS Module
- Protection Policy Module
- Quota Module
- Remote System Module
- Replication Rule Module
- Replication Session Module
- Role Module
- Security Config Module
- SMB Share Module
- Snapshot Module
- Snapshot Rule Module
- Volume Module
- Volume Group Module
Certificate operations on PowerStore Storage System
Supports the provisioning operations on a Certificate such as add/import, modify, reset, exchange and get the details of a certificate.
Parameter | Type | Required | Default | Choices | Description |
---|---|---|---|---|---|
verifycert | bool | True |
|
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 |
|
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 |
|
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 |
|
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. |
- 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.
- 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"
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. |
- Trisha Datta (@Trisha_Datta) [email protected]
Manage cluster related opeartions on PowerStore.
Managing cluster on PowerStore storage system includes getting details and modifying cluster configuration parameters.
Parameter | Type | Required | Default | Choices | Description |
---|---|---|---|---|---|
cluster_name | str | The Name of cluster. |
|||
verifycert | bool | True |
|
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 |
|
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 |
|
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. |
- 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.
- 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"
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. |
- P Srinivas Rao (@srinivas-rao5) [email protected]
Filesystem operations on PowerStore Storage system
Supports the provisioning operations on a filesystem such as create, modify, delete and get the details of a filesystem.
Parameter | Type | Required | Default | Choices | Description | |
---|---|---|---|---|---|---|
verifycert | bool | True |
|
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 |
|
File system security access policies. |
|||
description | str | Description of the file system. |
||||
folder_rename_policy | str |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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. |
- 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.
- 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"
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 |
- Arindam Datta (@dattaarindam) [email protected]
Manage Filesystem Snapshots on Dell EMC PowerStore
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.
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 |
|
The unit for retention. |
|
verifycert | bool | True |
|
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 |
|
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 |
|
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. |
- The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.
- 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"
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 |
- Akash Shendge (@shenda1) [email protected]
Manage host on PowerStore storage system.
Managing host on PowerStore storage system includes create host with a set of initiators, add/remove initiators from host, rename host and delete host.
Parameter | Type | Required | Default | Choices | Description | |
---|---|---|---|---|---|---|
verifycert | bool | True |
|
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 |
|
Operating system of the host. Required when creating a host OS type cannot be modified for a given host. |
|||
state | str | True |
|
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 |
|
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 |
|
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. |
- 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.
- 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'
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. |
- Manisha Agrawal (@agrawm3) [email protected]
Manage host group on PowerStore Storage System.
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.
Parameter | Type | Required | Default | Choices | Description |
---|---|---|---|---|---|
verifycert | bool | True |
|
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 |
|
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 |
|
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. |
- The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.
- 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'
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. |
- Manisha Agrawal (@agrawm3) [email protected]
Gathers information about PowerStore Storage entities
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.
Parameter | Type | Required | Default | Choices | Description | |
---|---|---|---|---|---|---|
verifycert | bool | True |
|
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 |
|
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 |
|
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. |
- 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.
- 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*"
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. |
- Arindam Datta (@dattaarindam) [email protected]
- Vivek Soni (@v-soni11) [email protected]
Manage jobs on Dell EMC PowerStore.
Managing jobs on PowerStore Storage System includes getting details of job.
Parameter | Type | Required | Default | Choices | Description |
---|---|---|---|---|---|
verifycert | bool | True |
|
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. |
- The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.
- name: Get Job Details
job:
array_ip: "{{mgmt_ip}}"
verifycert: "{{verifycert}}"
user: "{{user}}"
password: "{{password}}"
job_id: "a544981c-e94a-40ab-9eae-e578e182d2bb"
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. |
- Akash Shendge (@shenda1) [email protected]
Local user operations on PowerStore Storage System
Supports the provisioning operations on a Local user such as create, modify, delete and get the details of a local user.
Parameter | Type | Required | Default | Choices | Description |
---|---|---|---|---|---|
verifycert | bool | True |
|
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 |
|
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. |
- The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.
- 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"
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. |
- Arindam Datta (@dattaarindam) [email protected]
NAS Server operations on PowerStore Storage system.
Supports getting the details and modifying the attributes of a NAS server.
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 |
|
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 |
|
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 |
|
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. |
- The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.
- 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"
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 |
- Arindam Datta (@dattaarindam) [email protected]
Manage networks on Dell EMC PowerStore.
Managing networks on PowerStore Storage System includes getting details of network, modifying attributes of network and adding/removing IP ports to/from storage network.
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 |
|
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 |
|
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 |
|
Define whether the network exist or not. |
||
new_name | str | New name of the network. |
- 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.
- 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"
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. |
- Akash Shendge (@shenda1) [email protected]
Manage NFS exports on Dell EMC PowerStore.
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.
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 |
|
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 |
|
Define whether the hosts can access the NFS export. Required when adding or removing host access from the export. |
||
min_security | str |
|
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 |
|
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 |
|
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. |
- The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.
- 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"
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 |
- Akash Shendge (@shenda1) [email protected]
Perform Protection policy operations on PowerStore storage system.
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.
Parameter | Type | Required | Default | Choices | Description |
---|---|---|---|---|---|
verifycert | bool | True |
|
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 |
|
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 |
|
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. |
- 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.
- 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"
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. |
- Arindam Datta (@dattaarindam) [email protected]
- P Srinivas Rao (@srinivas-rao5) [email protected]
Manage Tree Quotas and User Quotas on PowerStore.
Managing Quotas on Powerstore storage system includes getting details, modifying, creating and deleting Quotas.
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 |
|
Unit of storage for the hard and soft limits. This parameter is required if limit is specified. |
||
verifycert | bool | True |
|
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 |
|
The type of quota which will be imposed. |
|||
state | str | True |
|
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. |
- 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.
- 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"
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. |
- P Srinivas Rao (@srinivas-rao5) [email protected]
Remote system operations on a PowerStore storage system.
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.
Parameter | Type | Required | Default | Choices | Description |
---|---|---|---|---|---|
verifycert | bool | True |
|
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 |
|
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 |
|
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 |
|
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. |
- 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.
- 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"
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. |
- P Srinivas Rao (@srinivas-rao5) [email protected]
Replication rule operations on a PowerStore storage system.
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.
Parameter | Type | Required | Default | Choices | Description |
---|---|---|---|---|---|
verifycert | bool | True |
|
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 |
|
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 |
|
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. |
- The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.
- 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"
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. |
- P Srinivas Rao (@srinivas-rao5) [email protected]
Replication session operations on a PowerStore storage system.
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.
Parameter | Type | Required | Default | Choices | Description |
---|---|---|---|---|---|
verifycert | bool | True |
|
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 |
|
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. |
- 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.
- 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"
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. |
- P Srinivas Rao (@srinivas-rao5) [email protected]
Get details of the roles present on the PowerStore storage system.
Manage role in PowerStore storage system includes getting the details of a role.
Parameter | Type | Required | Default | Choices | Description |
---|---|---|---|---|---|
role_id | str | Id of the role. |
|||
role_name | str | Name of the role. |
|||
verifycert | bool | True |
|
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 |
|
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. |
- 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.
- 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"
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. |
- P Srinivas Rao (@srinivas-rao5) [email protected]
Security configuration operations on PowerStore Storage System.
Managing security configuration on PowerStore storage system includes getting details and modifying security configuration parameters.
Parameter | Type | Required | Default | Choices | Description |
---|---|---|---|---|---|
verifycert | bool | True |
|
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 |
|
Define whether the security config should exist or not. |
|
protocol_mode | str |
|
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. |
- 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.
- 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"
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. |
- Bhavneet Sharma (@sharmb5) [email protected]
Manage SMB shares on a PowerStore storage system.
Managing SMB Shares on PowerStore storage system includes create, get, modify, and delete the SMB shares.
Parameter | Type | Required | Default | Choices | Description |
---|---|---|---|---|---|
verifycert | bool | True |
|
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 |
|
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 |
|
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. |
- 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.
- 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"
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 |
- P Srinivas Rao (@srinivas-rao5) [email protected]
Manage Snapshots on Dell EMC PowerStore.
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.
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 |
|
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 |
|
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 |
|
Defines whether the Snapshot should exist or not. |
|
user | str | True | The username of the PowerStore host. |
- The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.
- 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}}"
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 |
- Rajshree Khare (@khareRajshree) [email protected]
- Prashant Rakheja (@prashant-dell) [email protected]
Snapshot Rule operations on a PowerStore storage system.
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.
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 |
|
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 |
|
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 |
|
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 |
|
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. |
- The modules present in this collection named as 'dellemc.powerstore' are built to support the Dell EMC PowerStore storage platform.
- 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"
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. |
- Arindam Datta (@dattaarindam) [email protected]
Manage volumes on a PowerStore storage system.
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.
Parameter | Type | Required | Default | Choices | Description |
---|---|---|---|---|---|
verifycert | bool | True |
|
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 |
|
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 |
|
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 |
|
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 |
|
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. |
- 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.
- 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"
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. |
- Ambuj Dubey (@AmbujDube) [email protected]
- Manisha Agrawal (@agrawm3) [email protected]
Manage volume groups on a PowerStore Storage System
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.
Parameter | Type | Required | Default | Choices | Description |
---|---|---|---|---|---|
verifycert | bool | True |
|
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 |
|
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 |
|
Define whether the volume group should exist or not. |
|
user | str | True | The username of the PowerStore host. |
- 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.
- 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"
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. |
- Akash Shendge (@shenda1) [email protected]
- Arindam Datta (@dattaarindam) [email protected]