Error while running bigip_node module

89 views
Skip to first unread message

eric landers

unread,
Mar 15, 2018, 7:21:14 AM3/15/18
to Ansible Project
I'm trying to run the bigip_node playbook and am receiving the below error. I've also upgraded to python 2.7 which is now running alongside of python 2.6. How do I make the f5 modules now point to python 2.7 instead of 2.6?

[admin@server1 f5]$ cat playbooks/labbigipnode.yaml
---

- name: Create a Node
  hosts: lab_ltm
  connection: local
 
  tasks:
  - name: Add a new node
    bigip_node:
      server: "{{ inventory_hostname }}"
      user: "admin"
      password: "pass"
      state: present
      host: "10.2.1.1"
      name: "member1"
    delegate_to: localhost
[admin@server1 f5]$ 

[admin@server1 ~]$ ansible --version
ansible 2.4.2.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/admin/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.6.6 (r266:84292, Aug  9 2016, 06:11:56) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]

[admin@server1  ~]$ python --version
Python 2.6.6
[admin@server1  ~]$ scl enable python27 bash
[admin@server1 ~]$   python --version
Python 2.7.13



[admin@server1 f5]$ ansible-playbook -i inventory/hosts.ini playbooks/labbigipnode.yaml

PLAY [Create a Node] ***********************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************************

TASK [Add a new node] **********************************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: SyntaxError: invalid syntax
fatal: [dc1nnelabltm1.company.com.company.com -> localhost]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n  File \"/tmp/ansible_3X7cAp/ansible_module_bigip_node.py\", line 467, in <module>\n    from ansible.module_utils.f5_utils import *\n  File \"/tmp/ansible_3X7cAp/ansible_modlib.zip/ansible/module_utils/f5_utils.py\", line 143, in <module>\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/__init__.py\", line 33, in <module>\n    from f5.bigip.cm import Cm\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/cm/__init__.py\", line 19, in <module>\n    from f5.bigip.cm.autodeploy import Autodeploy\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/cm/autodeploy/__init__.py\", line 20, in <module>\n    from f5.bigip.cm.autodeploy.software_images import Software_Image_Downloads\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/cm/autodeploy/software_images.py\", line 23, in <module>\n    from f5.bigip.resource import PathElement\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/resource.py\", line 725\n    no_meta_dict = {k: v for k, v in iteritems(self.__dict__)\n                           ^\nSyntaxError: invalid syntax\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 0}
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: SyntaxError: invalid syntax
fatal: [dc1nnelabltm2.company.com.company.com -> localhost]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n  File \"/tmp/ansible_polkKA/ansible_module_bigip_node.py\", line 467, in <module>\n    from ansible.module_utils.f5_utils import *\n  File \"/tmp/ansible_polkKA/ansible_modlib.zip/ansible/module_utils/f5_utils.py\", line 143, in <module>\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/__init__.py\", line 33, in <module>\n    from f5.bigip.cm import Cm\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/cm/__init__.py\", line 19, in <module>\n    from f5.bigip.cm.autodeploy import Autodeploy\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/cm/autodeploy/__init__.py\", line 20, in <module>\n    from f5.bigip.cm.autodeploy.software_images import Software_Image_Downloads\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/cm/autodeploy/software_images.py\", line 23, in <module>\n    from f5.bigip.resource import PathElement\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/resource.py\", line 725\n    no_meta_dict = {k: v for k, v in iteritems(self.__dict__)\n                           ^\nSyntaxError: invalid syntax\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 0}
        to retry, use: --limit @/app/f5/playbooks/labbigipnode.retry

PLAY RECAP *********************************************************************************************************************
dc1nnelabltm1.company.com.company.com     : ok=1    changed=0    unreachable=0    failed=1   
dc1nnelabltm2.company.com.company.com     : ok=1    changed=0    unreachable=0    failed=1   

[admin@server1 f5]$ ansible-playbook -i inventory/hosts.ini playbooks/labbigipnode.yaml -vvv
ansible-playbook 2.4.2.0
  config file = /app/f5/ansible.cfg
  configured module search path = [u'/app/f5/library']
  ansible python module location = /usr/lib/python2.6/site-packages/ansible
  executable location = /usr/bin/ansible-playbook
  python version = 2.6.6 (r266:84292, Aug  9 2016, 06:11:56) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]
Using /app/f5/ansible.cfg as config file
Parsed /app/f5/inventory/hosts.ini inventory source with ini plugin

PLAYBOOK: labbigipnode.yaml ****************************************************************************************************
1 plays in playbooks/labbigipnode.yaml

PLAY [Create a Node] ***********************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************************
Using module file /usr/lib/python2.6/site-packages/ansible/modules/system/setup.py
<dc1nnelabltm1.company.com.company.com> ESTABLISH LOCAL CONNECTION FOR USER: admin
<dc1nnelabltm1.company.com.company.com> EXEC /bin/sh -c 'echo ~ && sleep 0'
Using module file /usr/lib/python2.6/site-packages/ansible/modules/system/setup.py
<dc1nnelabltm2.company.com.company.com> ESTABLISH LOCAL CONNECTION FOR USER: admin
<dc1nnelabltm2.company.com.company.com> EXEC /bin/sh -c 'echo ~ && sleep 0'
<dc1nnelabltm1.company.com.company.com> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/admin/.ansible/tmp/ansible-tmp-1521032816.65-187496773169800 `" && echo ansible-tmp-1521032816.65-187496773169800="` echo /home/admin/.ansible/tmp/ansible-tmp-1521032816.65-187496773169800 `" ) && sleep 0'
<dc1nnelabltm2.company.com.company.com> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/admin/.ansible/tmp/ansible-tmp-1521032816.65-7587602377538 `" && echo ansible-tmp-1521032816.65-7587602377538="` echo /home/admin/.ansible/tmp/ansible-tmp-1521032816.65-7587602377538 `" ) && sleep 0'
<dc1nnelabltm1.company.com.company.com> PUT /tmp/tmpLG3NN5 TO /home/admin/.ansible/tmp/ansible-tmp-1521032816.65-187496773169800/setup.py
<dc1nnelabltm2.company.com.company.com> PUT /tmp/tmpHoz4FL TO /home/admin/.ansible/tmp/ansible-tmp-1521032816.65-7587602377538/setup.py
<dc1nnelabltm1.company.com.company.com> EXEC /bin/sh -c 'chmod u+x /home/admin/.ansible/tmp/ansible-tmp-1521032816.65-187496773169800/ /home/admin/.ansible/tmp/ansible-tmp-1521032816.65-187496773169800/setup.py && sleep 0'
<dc1nnelabltm2.company.com.company.com> EXEC /bin/sh -c 'chmod u+x /home/admin/.ansible/tmp/ansible-tmp-1521032816.65-7587602377538/ /home/admin/.ansible/tmp/ansible-tmp-1521032816.65-7587602377538/setup.py && sleep 0'
<dc1nnelabltm1.company.com.company.com> EXEC /bin/sh -c '/usr/bin/python /home/admin/.ansible/tmp/ansible-tmp-1521032816.65-187496773169800/setup.py; rm -rf "/home/admin/.ansible/tmp/ansible-tmp-1521032816.65-187496773169800/" > /dev/null 2>&1 && sleep 0'
<dc1nnelabltm2.company.com.company.com> EXEC /bin/sh -c '/usr/bin/python /home/admin/.ansible/tmp/ansible-tmp-1521032816.65-7587602377538/setup.py; rm -rf "/home/admin/.ansible/tmp/ansible-tmp-1521032816.65-7587602377538/" > /dev/null 2>&1 && sleep 0'
META: ran handlers

TASK [Add a new node] **********************************************************************************************************
task path: /app/f5/playbooks/labbigipnode.yaml:8
Using module file /usr/lib/python2.6/site-packages/ansible/modules/network/f5/bigip_node.py
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: admin
<localhost> EXEC /bin/sh -c 'echo ~ && sleep 0'
Using module file /usr/lib/python2.6/site-packages/ansible/modules/network/f5/bigip_node.py
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: admin
<localhost> EXEC /bin/sh -c 'echo ~ && sleep 0'
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/admin/.ansible/tmp/ansible-tmp-1521032817.23-259682973184094 `" && echo ansible-tmp-1521032817.23-259682973184094="` echo /home/admin/.ansible/tmp/ansible-tmp-1521032817.23-259682973184094 `" ) && sleep 0'
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/admin/.ansible/tmp/ansible-tmp-1521032817.23-181051891789169 `" && echo ansible-tmp-1521032817.23-181051891789169="` echo /home/admin/.ansible/tmp/ansible-tmp-1521032817.23-181051891789169 `" ) && sleep 0'
<localhost> PUT /tmp/tmpLG3NN5 TO /home/admin/.ansible/tmp/ansible-tmp-1521032817.23-259682973184094/bigip_node.py
<localhost> PUT /tmp/tmpHoz4FL TO /home/admin/.ansible/tmp/ansible-tmp-1521032817.23-181051891789169/bigip_node.py
<localhost> EXEC /bin/sh -c 'chmod u+x /home/admin/.ansible/tmp/ansible-tmp-1521032817.23-259682973184094/ /home/admin/.ansible/tmp/ansible-tmp-1521032817.23-259682973184094/bigip_node.py && sleep 0'
<localhost> EXEC /bin/sh -c 'chmod u+x /home/admin/.ansible/tmp/ansible-tmp-1521032817.23-181051891789169/ /home/admin/.ansible/tmp/ansible-tmp-1521032817.23-181051891789169/bigip_node.py && sleep 0'
<localhost> EXEC /bin/sh -c '/usr/bin/python /home/admin/.ansible/tmp/ansible-tmp-1521032817.23-259682973184094/bigip_node.py; rm -rf "/home/admin/.ansible/tmp/ansible-tmp-1521032817.23-259682973184094/" > /dev/null 2>&1 && sleep 0'
<localhost> EXEC /bin/sh -c '/usr/bin/python /home/admin/.ansible/tmp/ansible-tmp-1521032817.23-181051891789169/bigip_node.py; rm -rf "/home/admin/.ansible/tmp/ansible-tmp-1521032817.23-181051891789169/" > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
  File "/tmp/ansible_OGMNW5/ansible_module_bigip_node.py", line 467, in <module>
    from ansible.module_utils.f5_utils import *
  File "/tmp/ansible_OGMNW5/ansible_modlib.zip/ansible/module_utils/f5_utils.py", line 143, in <module>
  File "/usr/lib/python2.6/site-packages/f5/bigip/__init__.py", line 33, in <module>
    from f5.bigip.cm import Cm
  File "/usr/lib/python2.6/site-packages/f5/bigip/cm/__init__.py", line 19, in <module>
    from f5.bigip.cm.autodeploy import Autodeploy
  File "/usr/lib/python2.6/site-packages/f5/bigip/cm/autodeploy/__init__.py", line 20, in <module>
    from f5.bigip.cm.autodeploy.software_images import Software_Image_Downloads
  File "/usr/lib/python2.6/site-packages/f5/bigip/cm/autodeploy/software_images.py", line 23, in <module>
    from f5.bigip.resource import PathElement
  File "/usr/lib/python2.6/site-packages/f5/bigip/resource.py", line 725
    no_meta_dict = {k: v for k, v in iteritems(self.__dict__)
                           ^
SyntaxError: invalid syntax
fatal: [dc1nnelabltm2.company.com-> localhost]: FAILED! => {
    "changed": false, 
    "module_stderr": "Traceback (most recent call last):\n  File \"/tmp/ansible_OGMNW5/ansible_module_bigip_node.py\", line 467, in <module>\n    from ansible.module_utils.f5_utils import *\n  File \"/tmp/ansible_OGMNW5/ansible_modlib.zip/ansible/module_utils/f5_utils.py\", line 143, in <module>\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/__init__.py\", line 33, in <module>\n    from f5.bigip.cm import Cm\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/cm/__init__.py\", line 19, in <module>\n    from f5.bigip.cm.autodeploy import Autodeploy\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/cm/autodeploy/__init__.py\", line 20, in <module>\n    from f5.bigip.cm.autodeploy.software_images import Software_Image_Downloads\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/cm/autodeploy/software_images.py\", line 23, in <module>\n    from f5.bigip.resource import PathElement\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/resource.py\", line 725\n    no_meta_dict = {k: v for k, v in iteritems(self.__dict__)\n                           ^\nSyntaxError: invalid syntax\n", 
    "module_stdout": "", 
    "msg": "MODULE FAILURE", 
    "rc": 0
}
The full traceback is:
Traceback (most recent call last):
  File "/tmp/ansible_9_BpKz/ansible_module_bigip_node.py", line 467, in <module>
    from ansible.module_utils.f5_utils import *
  File "/tmp/ansible_9_BpKz/ansible_modlib.zip/ansible/module_utils/f5_utils.py", line 143, in <module>
  File "/usr/lib/python2.6/site-packages/f5/bigip/__init__.py", line 33, in <module>
    from f5.bigip.cm import Cm
  File "/usr/lib/python2.6/site-packages/f5/bigip/cm/__init__.py", line 19, in <module>
    from f5.bigip.cm.autodeploy import Autodeploy
  File "/usr/lib/python2.6/site-packages/f5/bigip/cm/autodeploy/__init__.py", line 20, in <module>
    from f5.bigip.cm.autodeploy.software_images import Software_Image_Downloads
  File "/usr/lib/python2.6/site-packages/f5/bigip/cm/autodeploy/software_images.py", line 23, in <module>
    from f5.bigip.resource import PathElement
  File "/usr/lib/python2.6/site-packages/f5/bigip/resource.py", line 725
    no_meta_dict = {k: v for k, v in iteritems(self.__dict__)
                           ^
SyntaxError: invalid syntax
fatal: [dc1nnelabltm1.company.com -> localhost]: FAILED! => {
    "changed": false, 
    "module_stderr": "Traceback (most recent call last):\n  File \"/tmp/ansible_9_BpKz/ansible_module_bigip_node.py\", line 467, in <module>\n    from ansible.module_utils.f5_utils import *\n  File \"/tmp/ansible_9_BpKz/ansible_modlib.zip/ansible/module_utils/f5_utils.py\", line 143, in <module>\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/__init__.py\", line 33, in <module>\n    from f5.bigip.cm import Cm\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/cm/__init__.py\", line 19, in <module>\n    from f5.bigip.cm.autodeploy import Autodeploy\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/cm/autodeploy/__init__.py\", line 20, in <module>\n    from f5.bigip.cm.autodeploy.software_images import Software_Image_Downloads\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/cm/autodeploy/software_images.py\", line 23, in <module>\n    from f5.bigip.resource import PathElement\n  File \"/usr/lib/python2.6/site-packages/f5/bigip/resource.py\", line 725\n    no_meta_dict = {k: v for k, v in iteritems(self.__dict__)\n                           ^\nSyntaxError: invalid syntax\n", 
    "module_stdout": "", 
    "msg": "MODULE FAILURE", 
    "rc": 0
}
        to retry, use: --limit @/app/f5/playbooks/labbigipnode.retry

PLAY RECAP *********************************************************************************************************************
dc1nnelabltm1.company.com     : ok=1    changed=0    unreachable=0    failed=1   
dc1nnelabltm2.company.com    : ok=1    changed=0    unreachable=0    failed=1   






J Hawkesworth

unread,
Mar 15, 2018, 10:19:26 AM3/15/18
to Ansible Project
I *think* you'd have to run your ansible command using python2.7 - something like

/usr/bin/python2.7 /usr/local/bin/ansible-playbook <rest of command line here>


If you want to run remote ansible commands using 2.6 or something else, you can set
ansible_python_interpreter

in your inventory/group_vars as described here: http://docs.ansible.com/ansible/latest/faq.html#how-do-i-handle-python-pathing-not-having-a-python-2-x-in-usr-bin-python-on-a-remote-machine

Hope this helps,

Jon

Toshio Kuratomi

unread,
Mar 15, 2018, 10:34:19 AM3/15/18
to ansible...@googlegroups.com
Setting ansible_python_interpreter=/path/to/python2.7 should do it for you unless the scl python2.7 doesn't know where its own libraries are (haven't used scl python so I don't know the answer to that off the top of my head)


You can set that on the command line using the --extra-vars option to test: http://docs.ansible.com/ansible/devel/cli/ansible-playbook.html#cmdoption-ansible-playbook-e
and via group_vars/host_vars to make it apply on every run: http://docs.ansible.com/ansible/devel/user_guide/intro_inventory.html#host-variables

-Toshio

--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-project+unsubscribe@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/8aa9b313-e6a3-4a76-901e-c8d16d45bae4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages