dell / redfish-ansible-module

Ansible modules for Out-Of-Band Controllers using Redfish APIs
GNU General Public License v3.0
195 stars 80 forks source link

HTTP error 406> iDRAC9 3.30 firmware and redfish_facts not working in, get_cpu_inventory.yml, for example #87

Closed ja07657 closed 5 years ago

ja07657 commented 5 years ago

Using this playbook for an example, get_cpu_inventory.yml... Using the latest idrac9 firmware, 3.30 (which includes HSTS), these 'get' playbooks stopped working, with FAILED! => ("changed": false, "msg": "HTTP Error: 406" Older firmware works fine, such as 3.21

redfish_facts 2.7 ansible-playbook 2.7.8 python version = 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]

TASK [Define timestamp] ** task path: /opt/scripts/ansible/play/inventory/create_output_file.yml:2 ok: [10.40.196.200] => { "ansible_facts": { "timestamp": "20190319_051645" }, "changed": false }

TASK [Define file to place results] ** task path: /opt/scripts/ansible/play/inventory/create_output_file.yml:6 ok: [10.40.196.200] => { "ansible_facts": { "template": "/opt/scripts/ansible/out/10.40.196.200/10.40.196.200_DiskInventory_20190319_051645" }, "changed": false }

TASK [Create dropoff directory for host] ***** task path: /opt/scripts/ansible/play/inventory/create_output_file.yml:10 <10.40.196.200> ESTABLISH LOCAL CONNECTION FOR USER: root <10.40.196.200> EXEC /bin/sh -c 'echo ~root && sleep 0' <10.40.196.200> EXEC /bin/sh -c '( umask 77 && mkdir -p "echo /root/.ansible/tmp/ansible-tmp-1552987005.97-263516994801805" && echo ansible-tmp-1552987005.97-263516994801805="echo /root/.ansible/tmp/ansible-tmp-1552987005.97-263516994801805" ) && sleep 0' Using module file /usr/lib/python2.7/site-packages/ansible/modules/files/file.py <10.40.196.200> PUT /root/.ansible/tmp/ansible-local-181058PGyhD/tmpoQ8qVS TO /root/.ansible/tmp/ansible-tmp-1552987005.97-263516994801805/AnsiballZ_file.py <10.40.196.200> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1552987005.97-263516994801805/ /root/.ansible/tmp/ansible-tmp-1552987005.97-263516994801805/AnsiballZ_file.py && sleep 0' <10.40.196.200> EXEC /bin/sh -c '/usr/bin/python /root/.ansible/tmp/ansible-tmp-1552987005.97-263516994801805/AnsiballZ_file.py && sleep 0' <10.40.196.200> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1552987005.97-263516994801805/ > /dev/null 2>&1 && sleep 0' ok: [10.40.196.200] => { "changed": false, "diff": { "after": { "path": "/opt/scripts/ansible/out/10.40.196.200" }, "before": { "path": "/opt/scripts/ansible/out/10.40.196.200" } }, "gid": 0, "group": "root", "invocation": { "module_args": { "_diff_peek": null, "_original_basename": null, "access_time": null, "access_time_format": "%Y%m%d%H%M.%S", "attributes": null, "backup": null, "content": null, "delimiter": null, "directory_mode": null, "follow": true, "force": false, "group": null, "mode": null, "modification_time": null, "modification_time_format": "%Y%m%d%H%M.%S", "owner": null, "path": "/opt/scripts/ansible/out/10.40.196.200", "recurse": false, "regexp": null, "remote_src": null, "selevel": null, "serole": null, "setype": null, "seuser": null, "src": null, "state": "directory", "unsafe_writes": null } }, "mode": "0755", "owner": "root", "path": "/opt/scripts/ansible/out/10.40.196.200", "size": 6, "state": "directory", "uid": 0 }

TASK [Get disk inventory] **** task path: /opt/scripts/ansible/play/inventory/get_disk_inventory.yml:15 <10.40.196.200> ESTABLISH LOCAL CONNECTION FOR USER: root <10.40.196.200> EXEC /bin/sh -c 'echo ~root && sleep 0' <10.40.196.200> EXEC /bin/sh -c '( umask 77 && mkdir -p "echo /root/.ansible/tmp/ansible-tmp-1552987006.22-256406269673130" && echo ansible-tmp-1552987006.22-256406269673130="echo /root/.ansible/tmp/ansible-tmp-1552987006.22-256406269673130" ) && sleep 0' Using module file /usr/lib/python2.7/site-packages/ansible/modules/remote_management/redfish/redfish_facts.py <10.40.196.200> PUT /root/.ansible/tmp/ansible-local-181058PGyhD/tmpEKMNk7 TO /root/.ansible/tmp/ansible-tmp-1552987006.22-256406269673130/AnsiballZ_redfish_facts.py <10.40.196.200> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1552987006.22-256406269673130/ /root/.ansible/tmp/ansible-tmp-1552987006.22-256406269673130/AnsiballZ_redfish_facts.py && sleep 0' <10.40.196.200> EXEC /bin/sh -c '/usr/bin/python /root/.ansible/tmp/ansible-tmp-1552987006.22-256406269673130/AnsiballZ_redfish_facts.py && sleep 0' <10.40.196.200> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1552987006.22-256406269673130/ > /dev/null 2>&1 && sleep 0' fatal: [10.40.196.200]: FAILED! => { "changed": false, "invocation": { "module_args": { "baseuri": "10.40.196.200", "category": [ "Systems" ], "command": [ "GetDiskInventory" ], "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "user": "root" } }, "msg": "HTTP Error: 406" } to retry, use: --limit @/opt/scripts/ansible/play/inventory/get_disk_inventory.retry

PLAY RECAP *** 10.40.196.200 : ok=4 changed=0 unreachable=0 failed=1

jose-delarosa commented 5 years ago

I am not able to reproduce this issue with latest devel branch. What is the exact playbook you are using?

jose-delarosa commented 5 years ago

What 14G server is this on? Latest iDRAC FW I am aware of is 3.21.26.22

ja07657 commented 5 years ago

r640, r740xd > https://www.dell.com/support/home/us/en/19/drivers/driversdetails?driverid=g6w0w&oscode=wst14&productcode=poweredge-r740xd

ja07657 commented 5 years ago

Using : < # ansible-playbook -v play/inventory/get_cpu_inventory.yml > and < # ansible-playbook -v play/inventory/get_disk_inventory.yml >

snecklifter commented 5 years ago

What 14G server is this on? Latest iDRAC FW I am aware of is 3.21.26.22

We are running 3.30.30.30 - this is the latest firmware as of today.

We do NOT see this issue with older versions of firmware.

We are also using the developer branch of ansible.

jaszewski-jakub commented 5 years ago

Same here after iDRAC firmware update to version 3.30.30.30 on PE C6420 getting: fatal: [idrac_fqdn]: FAILED! => {"changed": false, "msg": "HTTP Error: 406"} when using https://docs.ansible.com/ansible/latest/modules/redfish_facts_module.html

ansible 2.7.9 python version = 2.7.13

jose-delarosa commented 5 years ago

Thank you for submitting. I am able to reproduce. Sigh, now I need to go check with the iDRAC team what changed.

iDRAC FW 3.30.30.30 can be downloaded here.

jose-delarosa commented 5 years ago

See https://github.com/ansible/ansible/pull/55062

jose-delarosa commented 5 years ago

@jaszewski-jakub Is this OK now? Can we close this?

jaszewski-jakub commented 5 years ago

@jose-delarosa works! thanks