Ansible Modules for Dell PowerFlex

dell, updated 🕥 2022-12-14 06:07:17

Ansible Modules for Dell Technologies PowerFlex

The Ansible Modules for Dell Technologies (Dell) PowerFlex allow Data Center and IT administrators to use RedHat Ansible to automate and orchestrate the provisioning and management of Dell PowerFlex storage systems.

The capabilities of the Ansible modules are managing SDCs, volumes, snapshots, storage pools, replication consistency groups, SDSs, devices, protection domains, MDM cluster, and to gather high level facts from the storage system. The options available are list, show, create, modify and delete. These tasks can be executed by running simple playbooks written in yaml syntax. The modules are written so that all the operations are idempotent, so making multiple identical requests has the same effect as making a single request.

Table of contents

License

The Ansible collection for PowerFlex is released and licensed under the GPL-3.0 license. See LICENSE for the full terms. Ansible modules and modules utilities that are part of the Ansible collection for PowerFlex are released and licensed under the Apache 2.0 license. See MODULE-LICENSE for the full terms.

Prerequisites

| Ansible Modules | PowerFlex/VxFlex OS Version | SDK version | Python version | Ansible | |---------------------|-----------------------|-------|--------------------|--------------------------| | v1.5.0 |3.5
3.6
4.0 | 1.6.0 | 3.9.x
3.10.x
3.11.x | 2.12
2.13
2.14 |

Idempotency

The modules are written in such a way that all requests are idempotent and hence fault-tolerant. It essentially means that the result of a successfully performed request is independent of the number of times it is executed.

List of Ansible modules for Dell PowerFlex

Installation and execution of Ansible modules for Dell PowerFlex

The installation and execution steps of Ansible modules for Dell PowerFlex can be found here.

Releasing, Maintenance and Deprecation

Ansible Modules for Dell Technnologies PowerFlex follows Semantic Versioning.

New version will be release regularly if significant changes (bug fix or new feature) are made in the collection.

Released code versions are located on "release" branches with names of the form "release-x.y.z" where x.y.z corresponds to the version number. More information on branching strategy followed can be found here.

Ansible Modules for Dell Technologies PowerFlex deprecation cycle is aligned with that of Ansible.

Issues

Consider using true/false for all booleans in docs

opened on 2023-03-06 10:58:04 by kristianheljas

Based on the community decision to use true/false for boolean values in documentation and examples, we ask that you evaluate booleans in this collection and consider changing any that do not use true/false (lowercase).

See documentation block format for more info (specifically, option defaults).

If you have already implemented this or decide not to, feel free to close this issue.


P.S. This is auto-generated issue, please raise any concerns here

Error when adding standby_mdm to 1-node cluster

opened on 2023-01-23 21:39:36 by tperrindell

Hello,

I am trying to install a powerflex with a maximum of automated tasks.

I managed to initiate a one-node cluster, and then I installed and setup a gateway to interface with it.

However, when trying to add standby nodes, I'm getting the following error : An exception occurred during task execution. To see the full traceback, use -vvv. The error was: KeyError: slaves fatal: [cop-pflex04 -> localhost]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last): File \"/home/runner/.ansible/tmp/ansible-tmp-1674509598.2062175-319-228748645774836/AnsiballZ_mdm_cluster.py\", line 107, in <module> _ansiballz_main() File \"/home/runner/.ansible/tmp/ansible-tmp-1674509598.2062175-319-228748645774836/AnsiballZ_mdm_cluster.py\", line 99, in _ansiballz_main invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS) File \"/home/runner/.ansible/tmp/ansible-tmp-1674509598.2062175-319-228748645774836/AnsiballZ_mdm_cluster.py\", line 47, in invoke_module runpy.run_module(mod_name=ansible_collections.dellemc.powerflex.plugins.modules.mdm_cluster, init_globals=dict(_module_fqn=ansible_collections.dellemc.powerflex.plugins.modules.mdm_cluster, _modlib_path=modlib_path), File \"/usr/lib64/python3.9/runpy.py\", line 225, in run_module return _run_module_code(code, init_globals, run_name, mod_spec) File \"/usr/lib64/python3.9/runpy.py\", line 97, in _run_module_code _run_code(code, mod_globals, init_globals, File \"/usr/lib64/python3.9/runpy.py\", line 87, in _run_code exec(code, run_globals) File \"/tmp/ansible_dellemc.powerflex.mdm_cluster_payload_331_163c/ansible_dellemc.powerflex.mdm_cluster_payload.zip/ansible_collections/dellemc/powerflex/plugins/modules/mdm_cluster.py\", line 1338, in <module> File \"/tmp/ansible_dellemc.powerflex.mdm_cluster_payload_331_163c/ansible_dellemc.powerflex.mdm_cluster_payload.zip/ansible_collections/dellemc/powerflex/plugins/modules/mdm_cluster.py\", line 1334, in main File \"/tmp/ansible_dellemc.powerflex.mdm_cluster_payload_331_163c/ansible_dellemc.powerflex.mdm_cluster_payload.zip/ansible_collections/dellemc/powerflex/plugins/modules/mdm_cluster.py\", line 1199, in perform_module_operation File \"/tmp/ansible_dellemc.powerflex.mdm_cluster_payload_331_163c/ansible_dellemc.powerflex.mdm_cluster_payload.zip/ansible_collections/dellemc/powerflex/plugins/modules/mdm_cluster.py\", line 872, in add_standby_mdm File \"/tmp/ansible_dellemc.powerflex.mdm_cluster_payload_331_163c/ansible_dellemc.powerflex.mdm_cluster_payload.zip/ansible_collections/dellemc/powerflex/plugins/modules/mdm_cluster.py\", line 1107, in check_mdm_exists File \"/tmp/ansible_dellemc.powerflex.mdm_cluster_payload_331_163c/ansible_dellemc.powerflex.mdm_cluster_payload.zip/ansible_collections/dellemc/powerflex/plugins/modules/mdm_cluster.py\", line 1065, in check_ip_in_secondarys KeyError: slaves ", "module_stdout": "", "msg": "MODULE FAILURE See stdout/stderr for the exact error", "rc": 1}

Which seems to indicate that the module is trying to check in the current set of slaves of the cluster if the IP is already present. As I only have one node in the cluster, the slaves key is empty, and might be the reason why this is throwing an error.

Then I added manually 2 nodes as standby mdms, and created a 3-node cluster, it worked fine, which makes me think that my analysis is correct.

Let me know if anything else is needed :)

Releases

Release 1.5.0 2022-12-14 06:06:39

Ansible modules for Dell PowerFlex

Release 1.4.0 2022-09-22 05:35:48

Ansible modules for Dell PowerFlex

Release 1.3.0 2022-06-21 10:32:04

Ansible modules for Dell PowerFlex

Release 1.2.0 2022-03-18 15:25:05

Ansible modules for Dell PowerFlex

Release 1.1.1 2021-12-16 14:25:03

Ansible modules for Dell EMC PowerFlex

Release 1.1.0 2021-09-23 11:11:55

Ansible modules for Dell EMC PowerFlex

Dell Technologies
GitHub Repository

ansible automation dell devops infrastructure-as-code powerflex