Software Development Kit (SDK) and API Discussions

Highlighted

Unexpected error with Ansible connecting to Ontap 9.3

Hello together,

 

I try to get Ansible running against a cDOT 9.3 system.

 

ansible 2.5.3
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /bin/ansible
python version = 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]

 

I have cloned the git repository and copied the files to the appropriate path.

 

Playbook:

---

- name: NetApp Test
  hosts: localhost
  connection: local

  vars:
      netapp_username: admin
      netapp_cluster: FQDN of cluster

  vars_prompt:
  - name: "netapp_password"
    prompt: "Password"

# Create standard roles on NetApp cDot systems
  tasks:
    - name: User_Role_Manager
      na_ontap_user_role:
        state: present
        name: NetAppAdminSupp
        command_directory_name: DEFAULT
        access_level: readonly
        https: yes
        vserver: " {{ netapp_cluster }}"
        hostname: "{{ netapp_cluster }}"
        username: "{{ netapp_username }}"
        password: "{{ netapp_password }}"

When I run this playbook, I get the following unexpected error:

 

ansible-playbook role_test.yml
Password:

PLAY [NetApp Test] ******************************************************************************************************************************************

TASK [Gathering Facts] **************************************************************************************************************************************
ok: [localhost]

TASK [User_Role_Manager] ************************************************************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: netapp_lib.api.zapi.zapi.NaApiError: NetApp API failed. Reason - Unexpected error:
fatal: [localhost]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n  File \"/tmp/ansible_0ZJewB/ansible_module_na_ontap_user_role.py\", line 209, in <module>\n    main()\n  File \"/tmp/ansible_0ZJewB/ansible_module_na_ontap_user_role.py\", line 206, in main\n    v.apply()\n  File \"/tmp/ansible_0ZJewB/ansible_module_na_ontap_user_role.py\", line 185, in apply\n    netapp_utils.ems_log_event(\"na_ontap_user_role\", self.server)\n  File \"/tmp/ansible_0ZJewB/ansible_modlib.zip/ansible/module_utils/netapp.py\", line 205, in ems_log_event\n  File \"/usr/lib/python2.7/site-packages/netapp_lib/api/zapi/zapi.py\", line 282, in invoke_successfully\n    result = self.invoke_elem(na_element, enable_tunneling)\n  File \"/usr/lib/python2.7/site-packages/netapp_lib/api/zapi/zapi.py\", line 264, in invoke_elem\n    raise NaApiError('Unexpected error', e.message)\nnetapp_lib.api.zapi.zapi.NaApiError: NetApp API failed. Reason - Unexpected error:\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 1}
        to retry, use: --limit @/git/role_test.retry

PLAY RECAP **************************************************************************************************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=1

Does anyone have an idea?

 

Regards

Matthias

12 REPLIES

Re: Unexpected error with Ansible connecting to Ontap 9.3

Hello Matthis,

 

This is most likely because you have not authorized http traffic on your cluster yet.  The current version of the modules (which you are using) are http traffic by default.  They can do https by adding 'https: true" to all your tasks, but unless you are using your own certs, this will fail.  The fix to allow self-signed certs is done, just waitng approval to release.  In the mean time here is how you can activate http.

 

cluster:> set -priv advanced

cluster*:>system services web modify -http-enable true

 

Also we are quicker to respond and help on our NetApp.io channels.  Head over to www.netapp.io/slack to get an invite to our slack workspace and join the #configurationmgmt channel.

 

Hope this helps and happy ansibeing.  

Re: Unexpected error with Ansible connecting to Ontap 9.3

Hey,

 

Thank you for your respond.

 

I checked teh cluster and I can see, that we have http already enabled.

 

And for https, I have to wait for the release, because we are using certificates which are signed by our CA.

 

Unfortunately, slack is blocked at our proxy server :-(

 

Regards

Matthias

Re: Unexpected error with Ansible connecting to Ontap 9.3

I have the same issue.  9.3P4. HTTP enabled.  netapp_lib.api.zapi.zapi.NaApiError: NetApp API failed. Reason - Unexpected error:

Re: Unexpected error with Ansible connecting to Ontap 9.3

If you have https:true and are using self-signed certs, you also need to bypass certificate validation with validate_certs: false

Re: Unexpected error with Ansible connecting to Ontap 9.3

This fixed it for me.  

 


@dblackwe wrote:
If you have https:true and are using self-signed certs, you also need to bypass certificate validation with validate_certs: false

 

Re: Unexpected error with Ansible connecting to Ontap 9.3

Where do I put

https: true in tasks

my Syntax:

tasks:
  https: true
- name: Create Vol
na_cdot_volume:
state: absent
name: ansibletest
aggregate_name: aggr2_sas_fp_node2
size: 1
size_unit: gb
vserver: ho-0001-wnas03t
hostname: "{{ netapp_hostname }}"
username: "{{ netapp_username }}"
password: "{{ netapp_password }}"

 

Do help

Re: Unexpected error with Ansible connecting to Ontap 9.3

First, if you join us on Slack (get an invite at www.netapp.io/slack) you can get much quicker responses.

 

Second, in your example it goes with the actual module run.

 

tasks:
- name: Create Vol
  na_ontap_volume:  (do not use the na_cdot modules, they are all depreciated and mostly broken)
    state: absent
    name: ansibletest
    aggregate_name: aggr2_sas_fp_node2
    size: 1
    size_unit: gb
    vserver: ho-0001-wnas03t
    hostname: "{{ netapp_hostname }}"
    username: "{{ netapp_username }}"
    password: "{{ netapp_password }}"

    https: true

   validate_certs: false

Re: Unexpected error with Ansible connecting to Ontap 9.3

Getting an error:

 

ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.

The error appears to have been in '/home/kkund/volume_create.yml': line 10, column 6, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

tasks:
- name: Create Volume
^ here

 

Re: Unexpected error with Ansible connecting to Ontap 9.3

Did you copy the whole line after na_ontap_volume?  That part in () was just there as a note for you, it shouldn't be there.

Forums