Unsolved
1 Message
0
4729
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.
cocampbe
36 Posts
0
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
cocampbe
36 Posts
0
June 18th, 2020 06:00
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.
cocampbe
36 Posts
0
October 22nd, 2020 12:00
Started working with the module again. The docs provide this example:
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.
FoolInTheRain
28 Posts
0
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.
Sbandreddi
7 Posts
1
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.
bmcfeeters
72 Posts
1
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-automation
Thanks
Bryan
Mokrina
2 Posts
0
July 26th, 2021 10:00
Posted on the wrong thread. Sorry.