Running simple playbook for testing fails on IDRAC 2.63.60.62 (01) on Dell M620 which is supposed to work as per readme
hosts: localhost
connection: local
name: Get system inventory
gather_facts: False
tasks:
name: Get system inventory
dellemc.openmanage.dellemc_get_system_inventory:
idrac_ip: "{{ idrac_ip }}"
idrac_user: "{{ idrac_user }}"
idrac_password: "{{ idrac_pwd }}"
Results should be that it works correctly, however i get the following
[root@Elysium baremetal-provision]# ansible-playbook get_inventory.yaml -e @galaga.yml
[WARNING]: Unable to parse /root/networking-workshop/lab_inventory/hosts as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
PLAY [Get system inventory] *****
TASK [Get system inventory] *****
[WARNING]: The value 443 (type int) in a string field was converted to '443' (type string). If this does not look like what you expect, quote the entire value to ensure it does not
change.
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Could not find device driver for iDRAC with IP Address: 10.192.1.44"}
[root@Elysium baremetal-provision]# ansible-playbook get_inventory.yaml -e @galaga.yml -vvv
ansible-playbook 2.9.15
config file = /root/.ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
executable location = /usr/local/bin/ansible-playbook
python version = 3.6.8 (default, Nov 16 2020, 16:55:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
Using /root/.ansible.cfg as config file
host_list declined parsing /root/networking-workshop/lab_inventory/hosts as it did not pass its verify_file() method
Skipping due to inventory source not existing or not being readable by the current user
script declined parsing /root/networking-workshop/lab_inventory/hosts as it did not pass its verify_file() method
auto declined parsing /root/networking-workshop/lab_inventory/hosts as it did not pass its verify_file() method
Skipping due to inventory source not existing or not being readable by the current user
yaml declined parsing /root/networking-workshop/lab_inventory/hosts as it did not pass its verify_file() method
Skipping due to inventory source not existing or not being readable by the current user
ini declined parsing /root/networking-workshop/lab_inventory/hosts as it did not pass its verify_file() method
Skipping due to inventory source not existing or not being readable by the current user
toml declined parsing /root/networking-workshop/lab_inventory/hosts as it did not pass its verify_file() method
[WARNING]: Unable to parse /root/networking-workshop/lab_inventory/hosts as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
PLAYBOOK: get_inventory.yaml ****
1 plays in get_inventory.yaml
PLAY [Get system inventory] *****
META: ran handlers
TASK [Get system inventory] *****
task path: /git/baremetal-provision/get_inventory.yaml:8
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root
<127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "echo /root/.ansible/tmp"&& mkdir "echo /root/.ansible/tmp/ansible-tmp-1608703256.6670403-17492-271507268445326" && echo ansible-tmp-1608703256.6670403-17492-271507268445326="echo /root/.ansible/tmp/ansible-tmp-1608703256.6670403-17492-271507268445326" ) && sleep 0'
Using module file /root/.ansible/collections/ansible_collections/dellemc/openmanage/plugins/modules/dellemc_get_system_inventory.py
<127.0.0.1> PUT /root/.ansible/tmp/ansible-local-1748644kze0dq/tmp1m8gnpjq TO /root/.ansible/tmp/ansible-tmp-1608703256.6670403-17492-271507268445326/AnsiballZ_dellemc_get_system_inventory.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1608703256.6670403-17492-271507268445326/ /root/.ansible/tmp/ansible-tmp-1608703256.6670403-17492-271507268445326/AnsiballZ_dellemc_get_system_inventory.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1608703256.6670403-17492-271507268445326/AnsiballZ_dellemc_get_system_inventory.py && sleep 0'
eeeeeeeeeeeeeeeeee<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1608703256.6670403-17492-271507268445326/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
File "/tmp/ansible_dellemc.openmanage.dellemc_get_system_inventory_payload_ojvkw230/ansible_dellemc.openmanage.dellemc_get_system_inventory_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/dellemc_get_system_inventory.py", line 90, in main
File "/tmp/ansible_dellemc.openmanage.dellemc_get_system_inventory_payload_ojvkw230/ansible_dellemc.openmanage.dellemc_get_system_inventory_payload.zip/ansible_collections/dellemc/openmanage/plugins/module_utils/dellemc_idrac.py", line 49, in enter
raise RuntimeError(msg)
[WARNING]: The value 443 (type int) in a string field was converted to '443' (type string). If this does not look like what you expect, quote the entire value to ensure it does not
change.
fatal: [localhost]: FAILED! => {
"changed": false,
"invocation": {
"module_args": {
"idrac_ip": "10.192.1.44",
"idrac_password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
"idrac_port": "443",
"idrac_user": "root"
}
},
"msg": "Could not find device driver for iDRAC with IP Address: 10.192.1.44"
Alternate Test:
When I test with another M620 blade with latest 2.65.65.65 (15) works as expected.
This is more of an informative issue ticket that not all builds of iDRAC work correctly i will upgrade to 2.65.65.65 on this server but figured it would be good for notes.
Running simple playbook for testing fails on IDRAC 2.63.60.62 (01) on Dell M620 which is supposed to work as per readme
hosts: localhost connection: local name: Get system inventory gather_facts: False
tasks:
Results should be that it works correctly, however i get the following
[root@Elysium baremetal-provision]# ansible-playbook get_inventory.yaml -e @galaga.yml [WARNING]: Unable to parse /root/networking-workshop/lab_inventory/hosts as an inventory source [WARNING]: No inventory was parsed, only implicit localhost is available [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
PLAY [Get system inventory] *****
TASK [Get system inventory] ***** [WARNING]: The value 443 (type int) in a string field was converted to '443' (type string). If this does not look like what you expect, quote the entire value to ensure it does not change. fatal: [localhost]: FAILED! => {"changed": false, "msg": "Could not find device driver for iDRAC with IP Address: 10.192.1.44"}
PLAY RECAP ** localhost : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
[root@Elysium baremetal-provision]# ansible-playbook get_inventory.yaml -e @galaga.yml -vvv ansible-playbook 2.9.15 config file = /root/.ansible.cfg configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/local/lib/python3.6/site-packages/ansible executable location = /usr/local/bin/ansible-playbook python version = 3.6.8 (default, Nov 16 2020, 16:55:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] Using /root/.ansible.cfg as config file host_list declined parsing /root/networking-workshop/lab_inventory/hosts as it did not pass its verify_file() method Skipping due to inventory source not existing or not being readable by the current user script declined parsing /root/networking-workshop/lab_inventory/hosts as it did not pass its verify_file() method auto declined parsing /root/networking-workshop/lab_inventory/hosts as it did not pass its verify_file() method Skipping due to inventory source not existing or not being readable by the current user yaml declined parsing /root/networking-workshop/lab_inventory/hosts as it did not pass its verify_file() method Skipping due to inventory source not existing or not being readable by the current user ini declined parsing /root/networking-workshop/lab_inventory/hosts as it did not pass its verify_file() method Skipping due to inventory source not existing or not being readable by the current user toml declined parsing /root/networking-workshop/lab_inventory/hosts as it did not pass its verify_file() method [WARNING]: Unable to parse /root/networking-workshop/lab_inventory/hosts as an inventory source [WARNING]: No inventory was parsed, only implicit localhost is available [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
PLAYBOOK: get_inventory.yaml **** 1 plays in get_inventory.yaml
PLAY [Get system inventory] ***** META: ran handlers
TASK [Get system inventory] ***** task path: /git/baremetal-provision/get_inventory.yaml:8 <127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: root <127.0.0.1> EXEC /bin/sh -c 'echo ~root && sleep 0' <127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "
echo /root/.ansible/tmp
"&& mkdir "echo /root/.ansible/tmp/ansible-tmp-1608703256.6670403-17492-271507268445326
" && echo ansible-tmp-1608703256.6670403-17492-271507268445326="echo /root/.ansible/tmp/ansible-tmp-1608703256.6670403-17492-271507268445326
" ) && sleep 0' Using module file /root/.ansible/collections/ansible_collections/dellemc/openmanage/plugins/modules/dellemc_get_system_inventory.py <127.0.0.1> PUT /root/.ansible/tmp/ansible-local-1748644kze0dq/tmp1m8gnpjq TO /root/.ansible/tmp/ansible-tmp-1608703256.6670403-17492-271507268445326/AnsiballZ_dellemc_get_system_inventory.py <127.0.0.1> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1608703256.6670403-17492-271507268445326/ /root/.ansible/tmp/ansible-tmp-1608703256.6670403-17492-271507268445326/AnsiballZ_dellemc_get_system_inventory.py && sleep 0' <127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1608703256.6670403-17492-271507268445326/AnsiballZ_dellemc_get_system_inventory.py && sleep 0' eeeeeeeeeeeeeeeeee<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1608703256.6670403-17492-271507268445326/ > /dev/null 2>&1 && sleep 0' The full traceback is: File "/tmp/ansible_dellemc.openmanage.dellemc_get_system_inventory_payload_ojvkw230/ansible_dellemc.openmanage.dellemc_get_system_inventory_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/dellemc_get_system_inventory.py", line 90, in main File "/tmp/ansible_dellemc.openmanage.dellemc_get_system_inventory_payload_ojvkw230/ansible_dellemc.openmanage.dellemc_get_system_inventory_payload.zip/ansible_collections/dellemc/openmanage/plugins/module_utils/dellemc_idrac.py", line 49, in enter raise RuntimeError(msg) [WARNING]: The value 443 (type int) in a string field was converted to '443' (type string). If this does not look like what you expect, quote the entire value to ensure it does not change. fatal: [localhost]: FAILED! => { "changed": false, "invocation": { "module_args": { "idrac_ip": "10.192.1.44", "idrac_password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "idrac_port": "443", "idrac_user": "root" } }, "msg": "Could not find device driver for iDRAC with IP Address: 10.192.1.44"Alternate Test: When I test with another M620 blade with latest 2.65.65.65 (15) works as expected.
This is more of an informative issue ticket that not all builds of iDRAC work correctly i will upgrade to 2.65.65.65 on this server but figured it would be good for notes.