F5Networks / f5-ansible

Imperative Ansible modules for F5 BIG-IP products
GNU General Public License v3.0
376 stars 231 forks source link

bigip_node.py failing #300

Closed Blaag closed 7 years ago

Blaag commented 7 years ago
ISSUE TYPE
COMPONENT NAME

bigip_node.py

ANSIBLE VERSION

ansible 2.4.0 config file = /etc/ansible/ansible.cfg configured module search path = [u'/home/black/ansible2/library'] ansible python module location = /home/black/ansible2/lib/python2.7/site-packages/ansible executable location = /home/black/ansible2/bin/ansible python version = 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609]

PYTHON VERSION

Python 2.7.12

BIGIP VERSION

Sys::Version Main Package Product BIG-IP Version 12.1.2 Build 1.0.271 Edition Hotfix HF1 Date Fri Apr 28 20:02:07 PDT 2017

CONFIGURATION

ansible.cfg is default except for following line:

library = $HOME/ansible2/library/

OS / ENVIRONMENT

Linux ubuntu 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

SUMMARY

Adding a node fails with an error.

STEPS TO REPRODUCE

Running the following playbook fails.


EXPECTED RESULTS

Expected results are that a node would be added.

ACTUAL RESULTS

ansible-playbook 2.4.0 config file = /etc/ansible/ansible.cfg configured module search path = [u'/home/black/ansible2/library'] ansible python module location = /home/black/ansible2/lib/python2.7/site-packages/ansible executable location = /home/black/ansible2/bin/ansible-playbook python version = 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] Using /etc/ansible/ansible.cfg as config file Parsed /etc/ansible/hosts inventory source with ini plugin

PLAYBOOK: node.yml **** 1 plays in node.yml

PLAY [192.168.1.253] ** META: ran handlers

TASK [create node] **** task path: /home/black/ansible2/playbooks/node.yml:9 Using module_utils file /home/black/ansible2/lib/python2.7/site-packages/ansible/module_utils/basic.py Using module_utils file /home/black/ansible2/lib/python2.7/site-packages/ansible/module_utils/ec2.py Using module_utils file /home/black/ansible2/lib/python2.7/site-packages/ansible/module_utils/f5_utils.py Using module_utils file /home/black/ansible2/lib/python2.7/site-packages/ansible/module_utils/_text.py Using module_utils file /home/black/ansible2/lib/python2.7/site-packages/ansible/module_utils/parsing/convert_bool.py Using module_utils file /home/black/ansible2/lib/python2.7/site-packages/ansible/module_utils/parsing/init.py Using module_utils file /home/black/ansible2/lib/python2.7/site-packages/ansible/module_utils/pycompat24.py Using module_utils file /home/black/ansible2/lib/python2.7/site-packages/ansible/module_utils/six/init.py Using module_utils file /home/black/ansible2/lib/python2.7/site-packages/ansible/module_utils/cloud.py Using module file /home/black/ansible2/library/bigip_node.py

ESTABLISH LOCAL CONNECTION FOR USER: black EXEC /bin/sh -c 'echo ~ && sleep 0' EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/black/.ansible/tmp/ansible-tmp-1502224856.09-92068491079289 `" && echo ansible-tmp-1502224856.09-92068491079289="` echo /home/black/.ansible/tmp/ansible-tmp-1502224856.09-92068491079289 `" ) && sleep 0' PUT /tmp/tmpc_iTES TO /home/black/.ansible/tmp/ansible-tmp-1502224856.09-92068491079289/bigip_node.py EXEC /bin/sh -c 'chmod u+x /home/black/.ansible/tmp/ansible-tmp-1502224856.09-92068491079289/ /home/black/.ansible/tmp/ansible-tmp-1502224856.09-92068491079289/bigip_node.py && sleep 0' EXEC /bin/sh -c '/home/black/ansible2/bin/python /home/black/.ansible/tmp/ansible-tmp-1502224856.09-92068491079289/bigip_node.py; rm -rf "/home/black/.ansible/tmp/ansible-tmp-1502224856.09-92068491079289/" > /dev/null 2>&1 && sleep 0' The full traceback is: Traceback (most recent call last): File "/tmp/ansible_Jb6XSC/ansible_module_bigip_node.py", line 603, in main() File "/tmp/ansible_Jb6XSC/ansible_module_bigip_node.py", line 586, in main module = config.create() File "/tmp/ansible_Jb6XSC/ansible_module_bigip_node.py", line 298, in create required_if=self.required_if File "/tmp/ansible_Jb6XSC/ansible_modlib.zip/ansible/module_utils/basic.py", line 870, in __init__ File "/tmp/ansible_Jb6XSC/ansible_modlib.zip/ansible/module_utils/basic.py", line 1711, in _check_required_if ValueError: too many values to unpack fatal: [192.168.1.253 -> localhost]: FAILED! => { "changed": false, "failed": true, "module_stderr": "Traceback (most recent call last):\n File \"/tmp/ansible_Jb6XSC/ansible_module_bigip_node.py\", line 603, in \n main()\n File \"/tmp/ansible_Jb6XSC/ansible_module_bigip_node.py\", line 586, in main\n module = config.create()\n File \"/tmp/ansible_Jb6XSC/ansible_module_bigip_node.py\", line 298, in create\n required_if=self.required_if\n File \"/tmp/ansible_Jb6XSC/ansible_modlib.zip/ansible/module_utils/basic.py\", line 870, in __init__\n File \"/tmp/ansible_Jb6XSC/ansible_modlib.zip/ansible/module_utils/basic.py\", line 1711, in _check_required_if\nValueError: too many values to unpack\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 0 } to retry, use: --limit @/home/black/ansible2/playbooks/node.retry PLAY RECAP **************************************************************************************************************************************************************************************************** 192.168.1.253 : ok=0 changed=0 unreachable=0 failed=1
pkhural commented 7 years ago

We are also experiencing a similar issue but I think this may be related to using ephemeral nodes using Ansible, do you know if there is an upcoming fix for this?

The full traceback is: File "/tmp/ansible_wUlUdD/ansible_module_bigip_node.py", line 395, in main created, desc = create_node_address(api, address=host, name=address) File "/tmp/ansible_wUlUdD/ansible_module_bigip_node.py", line 216, in create_node_address limits=[0] File "/usr/lib/python2.7/site-packages/bigsuds.py", line 463, in wrapped_method result = method(*args, **kwargs) File "/usr/lib/python2.7/site-packages/suds/client.py", line 542, in __call__ return client.invoke(args, kwargs) File "/usr/lib/python2.7/site-packages/suds/client.py", line 602, in invoke result = self.send(soapenv) File "/usr/lib/python2.7/site-packages/suds/client.py", line 649, in send result = self.failed(binding, e) File "/usr/lib/python2.7/site-packages/suds/client.py", line 702, in failed r, p = binding.get_fault(reply) File "/usr/lib/python2.7/site-packages/suds/bindings/binding.py", line 265, in get_fault raise WebFault(p, faultroot)

}, "msg": "received exception: Server raised fault: 'Exception caught in LocalLB::urn:iControl:LocalLB/NodeAddressV2::create()\nCommon::InvalidArgument\n'" }

caphrim007 commented 7 years ago

@pkhural @Blaag bigip_node (in this repo) has been refactored. please download it and raise any issues you may encounter.

@pkhural you can now specify ephemeral nodes using the fqdn parameter to the module