
UNSOLVED
V
VincentSHEN
1 Message
0
5318
June 11th, 2020 06:00
FAQ: Ansible Module for Dell EMC Isilon
To which Ansible module for Dell EMC Isilon version does this FAQ apply?
This FAQ applies to version 1.0 of the module.
Where can I get this Ansible module for Dell EMC Isilon?
We have a community in GitHub: https://github.com/dell/ansible-isilon
What are the software pre-requisites?
- Isilon OneFS 8 or higher
- Ansible 2.7 or higher
- Python 2.7.12 or higher
- Red Hat Enterprise Linux 7.6
What are the supported features for this Ansible module for Dell EMC Isilon?
The Ansible Modules for Dell EMC Isilon includes:
- File System Module
- Access Zone Module
- Users Module
- Groups Module
- Snapshot Module
- Snapshot Schedule Module
- NFS Module
- SMB Module
- Gather Facts Module
Each module includes View, Create, Delete, and Modify operations. For the details, refer to the table below:
|
user |
group |
filesystem |
Access zone |
NFS export |
SMB share |
snapshot |
Snapshot schedule |
Create |
y |
y |
y |
n |
y |
y |
y |
y |
Modify |
y |
y |
y |
y |
y |
y |
y |
y |
Delete |
y |
y |
y |
n |
y |
y |
y |
y |
View |
y |
y |
y |
y |
y |
y |
y |
y |
What is the filesystem as we don't see this concept in Isilon?
Filesystem in this Ansible module represents a directory in a given access zone with owner, ACL, and even quotas specified.
How to install it?
I've listed the high-level steps below. For the details, refer to the product guide at https://github.com/dell/ansible-isilon/blob/master/dellemc_ansible/docs/Ansible%20for%20Dell%20EMC%20Isilon%20v1.0%20Product%20Guide.pdf
The following example is using CenoOS 8 + python 3.6 + Ansible 2.9.5 + Isilon sdk 8.1.1 + OneFS 8.2.2. The overall steps are as the followings:
1. Install Ansible 2.9.5
# dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf install ansible
2. Check the python version for ansible by using the following command
# ansible --version
In my case it’s python 3.6.8
# ansible --version
ansible 2.9.5
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 3.6.8 (default, Nov 21 2019, 19:31:34) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4)]
3. Install Isilon sdk 8.1.1
# pip3 install isi_sdk_8_1_1
4. Install Isilon Ansible module: (make sure the path is aligned with the python version)
Copy utils/dellemc_ansible_utils.py to /usr/lib/python3.6/site-packages/ansible/module_utils/
Copy all module Python files from isilon/library folder to /usr/lib/python3.6/site-packages/ansible/modules/storage/emc
5. Install the playbook
Copy dellemc_ansible/isilon/playbooks to any place you want
6. Test the installation
Update the playbooks/flo_test.yml ; mine is as below:
---
- name: Collect set of facts in Isilon
hosts: localhost
connection: local
vars:
onefs_host: '192.168.116.88'
verify_ssl: False
api_user: 'root'
api_password: 'a'
access_zone: 'System'
tasks:
- name: Get nodes of the Isilon cluster
dellemc_isilon_gatherfacts:
onefs_host: "{ {onefs_host}}"
verify_ssl: "{ {verify_ssl}}"
api_user: "{ {api_user}}"
api_password: "{ {api_password}}"
gather_subset:
- nodes
register: subset_result
- debug:
var: subset_result
run the playbook:
# ansible-playbook playbooks/flo_test.yml
If everything is good, you should see the Info for your Isilon is returned:
…………
"release": "v9.0.0.BETA.0",
"uptime": 24533,
"version": "Isilon OneFS v8.2.2(RELEASE): 0x900003000000001:Tue Feb 25 09:19:10 PST 2020 root@se********-build11-114:/b/mnt/obj/b/mnt/src/********md64.********md64/sys/IQ.********md64.rele********se FreeBSD cl********ng version 5.0.0 (t********gs/RELEASE_500/fin********l 312559) (b********sed on LLVM 5.0.0svn)"
}
}
],
"total": 1
},
"Providers": [],
"Users": [],
"changed": false,
"failed": false
}
}
PLAY RECAP *********************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Does this module support quota?
The current version only supports directory(file system) quotas, but not user or group quotas.
Where can I find the examples?
Check examples from each module's file in /ansible-isilon/dellemc_ansible/isilon/library/
I've also created a short video on how to use this module to create and mount NFS export from Isilon.
What are the limitations of this module?
Gatherfacts |
Getting the list of users and groups with very long names may fail. |
Users and Groups |
Only local users and groups can be created. Operations on users and groups with very long names may fail. |
Access Zone |
Creation and deletion of access zones is not supported. |
Filesystems |
ACLs can only be modified from POSIX to POSIX mode. Only directory quotas are supported but not user or group quotas. Modification of include_snap_data flag is not supported. |
NFS Export |
If there are multiple exports present with the same path in an access zone, operations on such exports fail. |
Advanced Isilon features |
No support for advanced Isilon features like SyncIQ, tiering, WORM and so on. |
How to uninstall the module?
- pip3 uninstall isi_sdk_8_1_1
- Remove dellemc_ansible_utils.py from /usr/lib/python3.6/site-packages/ansible/module_utils/
- Remove the following files from /usr/lib/python3.6/site-packages/ansible/modules/storage/emc
dellemc_isilon_accesszone.py
dellemc_isilon_filesystem.py
dellemc_isilon_gatherfacts.py
dellemc_isilon_group.py
dellemc_isilon_nfs.py
dellemc_isilon_smb.py
dellemc_isilon_snapshot.py
dellemc_isilon_snapshotschedule.py
dellemc_isilon_user.py
4. Remove all the playbooks
Where do I submit an issue against the driver?
The Ansible module for Dell EMC Isilon is officially by Dell EMC. Therefore you can open a ticket directly to the support website : https://www.dell.com/support/ or open a discussion in the forum : https://www.dell.com/community/Containers/bd-p/Containers
Can I run this module in a production environment?
Yes, the module is production-grade. Please make sure your environment follows the pre-requisites and Ansible best practices.
Responses (7)
Solutions (0)
Why is this a prereq?
Red Hat Enterprise Linux 7.6
ansible is basically a python module. If you have python available, you can just pip install ansible. Sorry, I am not calling you out. I just feel like people get too caught up in Linux versions. And to that end, minor releases. This should work RHEL7, OL7, CentOS7, Ubuntu XX.XX.
Reply Started working with the module again. The docs provide this example:
- name: Get NFS Export dellemc_isilon_nfs: onefs_host: "{{onefs_host}}" api_user: "{{api_user}}" api_password: "{{api_password}}" verify_ssl: "{{verify_ssl}}" path: "{{path}}" access_zone: "{{access_zone}}" state: 'present'In looking at the module, this seems like it is going to create the path if it does not exist. That's not exactly a "get". Could you please clarify this? Almost seems appropriate to create another module that gets info.
Reply FoolInTheRain
2 Intern
•
123 Posts
3769
0
Posted October 27th, 2020 08:00
Hi Cocampbe,
In the "NFS Export Module parameters" section of the doc, and page 23-24, there is an explanation of the path parameters. The screen shot below is not very clear, but I have copied the text directly here as well:
****
Directory path to be exported. For non-system access zones, this path is a relative path from the base of the access zone.
The path must exist. The NFS module does not create the path.
****
So, the document seems to state it will not create the path.
If you find that it does create a path, let us know and then the engineers will need to look into that deeper issue.
Reply Sbandreddi
1 Rookie
•
8 Posts
3066
1
Posted May 19th, 2021 02:00
Hi
I have installed this module, but Unable to find the Yaml files under /ansible-isilon/dellemc_ansible/isilon/. I can only see library folder.Reply bmcfeeters
1 Rookie
•
72 Posts
3021
1
Posted May 19th, 2021 10:00
Hello Sbandreddi,
I assume that you are looking for example tasks/playbooks. Those can be seen by using the ansible-doc command or even just viewing the module's python code.
We have examples for Isilon/PowerScale and other array platforms available on this GitHub repository as well.
https://github.com/dell/ansible-storage-automationThanks
BryanReply

cocampbe
36 Posts
4551
0
Posted June 18th, 2020 06:00
In step 4, I would add that it is not necessary to copy the files to the python lib directory. Ansible works relative to where you run your playbook. you could have a directory with your playbook and have a library and module_utils directory there. This makes it more portable.
For reference: https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#directory-layout