Start a Conversation

Unsolved

1 Message

4909

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?

  1. pip3 uninstall isi_sdk_8_1_1
  2. Remove dellemc_ansible_utils.py from  /usr/lib/python3.6/site-packages/ansible/module_utils/
  3. 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.

 

36 Posts

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 

36 Posts

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.

36 Posts

October 22nd, 2020 12:00

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. 

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.

 

FoolInTheRain_0-1603811382185.png

****

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.

1 Rookie

 • 

8 Posts

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.

72 Posts

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

2 Posts

July 26th, 2021 10:00

Posted on the wrong thread. Sorry.

No Events found!

Top