f5-ansible
f5-ansible copied to clipboard
bigip_command is not working with ssh cli transport: the command is sent and finish with a timeout
COMPONENT NAME
bigip_command in the f5networks.f5_bigip.bigip collection
ansible.netcommon.network_cli with ssh transport
Environment
centos 7.9 python 3.6 ansible 2.10 paramiko 2.10.3
f5networks.f5_bigip.bigip 1.6.0
BIGIP VERSION
16.0.0.01
CONFIGURATION
ansible_connection: ansible.netcommon.network_cli ansible_network_os: f5networks.f5_bigip.bigip
code:
- name: Exec network_cli command with collection
f5networks.f5_bigip.bigip_command:
use_ssh: yes
commands:
- show sys hardware
OS / ENVIRONMENT
centos 7.9
SUMMARY
when executing the playbook, the ssh is done, the command is received by the bigip as we can see it in the log:
Mar 23 20:59:19 labkvmbigip_16_0_0_1.public.nas-x35g.lab notice tmsh[32670]: 01420002:5: AUDIT - pid=32670 user=root folder=/Common module=(tmos)# status=[Command OK] cmd_data=show sys hardware
but it finishes with :
in exec_module File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_jh8hhkw3/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/module_utils/client.py", line 192, in send_teem File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_jh8hhkw3/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible/module_utils/connection.py", line 185, in rpc ansible.module_utils.connection.ConnectionError: Method not found fatal: [labkvmbigip-direct]: FAILED! => { "changed": false,
Regards,
@gaetanquentin - unable to reproduce this issue at my end. Might be your infra issue. Please revalidate again.
here is my ansible logs:
it looks like jsonrpc request s a telemetry method: "method": "telemetry", "id": "09c2e2ee-cbf8-49a6-a67b-c6869fd0cae5"}
and the method is not found
2022-03-29 18:31:03,827 p=1761 u=da_ansible n=ansible | Using module_utils file ansible_collections/f5networks/f5_bigip/plugins/module_utils/version
2022-03-29 18:31:03,840 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/parsing/__init__.py
2022-03-29 18:31:03,840 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/__init__.py
2022-03-29 18:31:03,840 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/network.py
2022-03-29 18:31:03,840 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/_collections_compat.py
2022-03-29 18:31:03,840 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/parsing/convert_bool.py
2022-03-29 18:31:03,843 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/json.py
2022-03-29 18:31:03,844 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/collections.py
2022-03-29 18:31:03,874 p=1761 u=da_ansible n=ansible | Using module_utils file ansible_collections/ansible/netcommon/plugins/module_utils/network/common/config
2022-03-29 18:31:03,902 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/text/formatters.py
2022-03-29 18:31:03,903 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/validation.py
2022-03-29 18:31:03,903 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/text/converters.py
2022-03-29 18:31:03,903 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/pycompat24.py
2022-03-29 18:31:03,903 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/text/__init__.py
2022-03-29 18:31:03,903 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/process.py
2022-03-29 18:31:03,904 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/compat/selectors.py
2022-03-29 18:31:03,904 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/_utils.py
2022-03-29 18:31:03,904 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/parameters.py
2022-03-29 18:31:03,904 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/_json_compat.py
2022-03-29 18:31:03,904 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/sys_info.py
2022-03-29 18:31:03,905 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/compat/__init__.py
2022-03-29 18:31:03,905 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/common/file.py
2022-03-29 18:31:03,912 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/compat/_selectors2.py
2022-03-29 18:31:03,919 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/distro/__init__.py
2022-03-29 18:31:03,921 p=1761 u=da_ansible n=ansible | Using module_utils file /home/da_ansible/venv-ansible-2.9-python-2.7/lib/python2.7/site-packages/ansible/module_utils/distro/_distro.py
2022-03-29 18:31:03,929 p=1761 u=da_ansible n=ansible | <labkvmbigip-direct> Attempting python interpreter discovery
2022-03-29 18:31:03,929 p=1761 u=da_ansible n=ansible | <172.16.99.23> EXEC /bin/sh -c 'echo PLATFORM; uname; echo FOUND; command -v '"'"'/usr/bin/python'"'"'; command -v '"'"'python3.7'"'"'; command -v '"'"'pyt
hon3.6'"'"'; command -v '"'"'python3.5'"'"'; command -v '"'"'python2.7'"'"'; command -v '"'"'python2.6'"'"'; command -v '"'"'/usr/libexec/platform-python'"'"'; command -v '"'"'/usr/bin/python3'"'"'; command -v '
"'"'python'"'"'; echo ENDFOUND && sleep 0'
2022-03-29 18:31:03,936 p=1761 u=da_ansible n=ansible | <172.16.99.23> EXEC /bin/sh -c '/usr/bin/python && sleep 0'
2022-03-29 18:31:03,954 p=1761 u=da_ansible n=ansible | Using module file /home/da_ansible/.ansible/collections/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py
2022-03-29 18:31:03,954 p=1761 u=da_ansible n=ansible | <172.16.99.23> PUT /home/da_ansible/.ansible/tmp/ansible-local-1752RZmIgh/tmpMD5GCD TO /home/da_ansible/.ansible/tmp/ansible-local-1752RZmIgh/ansible-tmp-1648578663.78-1761-172780799488690/AnsiballZ_bigip_command.py
2022-03-29 18:31:03,955 p=1761 u=da_ansible n=ansible | <172.16.99.23> EXEC /bin/sh -c 'chmod u+x /home/da_ansible/.ansible/tmp/ansible-local-1752RZmIgh/ansible-tmp-1648578663.78-1761-172780799488690/ /home/da_ansible/.ansible/tmp/ansible-local-1752RZmIgh/ansible-tmp-1648578663.78-1761-172780799488690/AnsiballZ_bigip_command.py && sleep 0'
2022-03-29 18:31:03,960 p=1761 u=da_ansible n=ansible | <172.16.99.23> EXEC /bin/sh -c '/usr/bin/python /home/da_ansible/.ansible/tmp/ansible-local-1752RZmIgh/ansible-tmp-1648578663.78-1761-172780799488690/AnsiballZ_bigip_command.py && sleep 0'
2022-03-29 18:31:04,058 p=1769 u=da_ansible n=ansible | jsonrpc request: {"params": [["{\"answer\": null, \"command\": \"tmsh -v\", \"prompt\": null}"], {}], "jsonrpc": "2.0", "method": "exec_command", "id": "9d7a1a32-0925-4554-95f9-5f1030da8f89"}
2022-03-29 18:31:04,059 p=1769 u=da_ansible n=ansible | <172.16.99.23> ESTABLISH PARAMIKO SSH CONNECTION FOR USER: root on PORT 8422 TO 172.16.99.23
2022-03-29 18:31:04,107 p=1769 u=da_ansible n=p=1769 u=da_ansible | paramiko [172.16.99.23] | Connected (version 2.0, client OpenSSH_7.4)
2022-03-29 18:31:04,180 p=1769 u=da_ansible n=p=1769 u=da_ansible | paramiko [172.16.99.23] | Authentication (publickey) successful!
2022-03-29 18:31:05,622 p=1769 u=da_ansible n=ansible | jsonrpc response: {"jsonrpc": "2.0", "id": "9d7a1a32-0925-4554-95f9-5f1030da8f89", "result": "The current TMSH version is 16.0.1.1"}
2022-03-29 18:31:05,623 p=1769 u=da_ansible n=ansible | jsonrpc request: {"params": [["{\"answer\": null, \"prompt\": null, \"command\": \"tmsh modify cli preference pager disabled\"}"], {}], "jsonrpc": "2.0", "method": "exec_command", "id": "c39e7cde-7be6-435d-8fa6-0b9cd93b6905"}
2022-03-29 18:31:05,942 p=1769 u=da_ansible n=ansible | jsonrpc response: {"jsonrpc": "2.0", "id": "c39e7cde-7be6-435d-8fa6-0b9cd93b6905", "result": ""}
2022-03-29 18:31:05,942 p=1769 u=da_ansible n=ansible | jsonrpc request: {"params": [["{\"answer\": null, \"prompt\": null, \"command\": \"tmsh -c \\\"show sys hardware\\\"\"}"], {}], "jsonrpc": "2.0", "method": "telemetry", "id": "09c2e2ee-cbf8-49a6-a67b-c6869fd0cae5"}
2022-03-29 18:31:06,264 p=1769 u=da_ansible n=ansible | jsonrpc response: {"jsonrpc": "2.0", "id": "09c2e2ee-cbf8-49a6-a67b-c6869fd0cae5", "error": {"message": "Method not found", "code": -32601}}
2022-03-29 18:31:06,272 p=1761 u=da_ansible n=ansible | <172.16.99.23> EXEC /bin/sh -c 'rm -f -r /home/da_ansible/.ansible/tmp/ansible-local-1752RZmIgh/ansible-tmp-1648578663.78-1761-172780799488690/ > /dev/null 2>&1 && sleep 0'
2022-03-29 18:31:06,281 p=1752 u=da_ansible n=ansible | The full traceback is:
Traceback (most recent call last):
File "/home/da_ansible/.ansible/tmp/ansible-local-1752RZmIgh/ansible-tmp-1648578663.78-1761-172780799488690/AnsiballZ_bigip_command.py", line 102, in <module>
_ansiballz_main()
File "/home/da_ansible/.ansible/tmp/ansible-local-1752RZmIgh/ansible-tmp-1648578663.78-1761-172780799488690/AnsiballZ_bigip_command.py", line 94, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File "/home/da_ansible/.ansible/tmp/ansible-local-1752RZmIgh/ansible-tmp-1648578663.78-1761-172780799488690/AnsiballZ_bigip_command.py", line 40, in invoke_module
runpy.run_module(mod_name='ansible_collections.f5networks.f5_bigip.plugins.modules.bigip_command', init_globals=None, run_name='__main__', alter_sys=True)
File "/usr/lib64/python2.7/runpy.py", line 176, in run_module
fname, loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 82, in _run_module_code
mod_name, mod_fname, mod_loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_iaJ7w1/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 675, in <module>
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_iaJ7w1/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 668, in
@gaetanquentin We dont support Py27. Please upgrade to Py36 and verify again.
@gaetanquentin the error you are seeing is coming from env that has 2.7 python installed most likely your controller, the collection requires you to have 3.x python installed, if you have the 3.x on your controller then the above logs mean that you are attempting to execute this on the target host, check if you have delegate_to: localhost placed in your task.
with 3.6 i have the same error.
on this documentation, https://clouddocs.f5.com/products/orchestration/ansible/devel/f5_bigip/modules_2_0/bigip_command_module.html#bigip-command-module-2, there is no delegate_to.
if i add delegate_to, the error is now:
[...]
2022-03-30 15:16:43,069 p=3535 u=da_ansible n=ansible | ansible-playbook 2.9.24
config file = None
configured module search path = ['/home/da_ansible/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/da_ansible/venv-ansible-2.9-python-3.6/lib64/python3.6/site-packages/ansible
executable location = /home/da_ansible/venv-ansible-2.9-python-3.6/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)]
2
[ ... ]
2022-03-30 15:16:43,457 p=3541 u=da_ansible n=ansible | <localhost> EXEC /bin/sh -c 'chmod u+x /home/da_ansible/.ansible/tmp/ansible-tmp-1648653403.3194852-3541-164825329395105/ /home/da_ansible/.ansible/tmp/ansible-tmp-1648653403.3194852-3541-164825329395105/AnsiballZ_bigip_command.py && sleep 0'
2022-03-30 15:16:43,462 p=3541 u=da_ansible n=ansible | <localhost> EXEC /bin/sh -c 'python /home/da_ansible/.ansible/tmp/ansible-tmp-1648653403.3194852-3541-164825329395105/AnsiballZ_bigip_command.py && sleep 0'
2022-03-30 15:16:43,714 p=3541 u=da_ansible n=ansible | <localhost> EXEC /bin/sh -c 'rm -f -r /home/da_ansible/.ansible/tmp/ansible-tmp-1648653403.3194852-3541-164825329395105/ > /dev/null 2>&1 && sleep 0'
2022-03-30 15:16:43,722 p=3535 u=da_ansible n=ansible | The full traceback is:
Traceback (most recent call last):
File "/home/da_ansible/.ansible/tmp/ansible-tmp-1648653403.3194852-3541-164825329395105/AnsiballZ_bigip_command.py", line 102, in <module>
_ansiballz_main()
File "/home/da_ansible/.ansible/tmp/ansible-tmp-1648653403.3194852-3541-164825329395105/AnsiballZ_bigip_command.py", line 94, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File "/home/da_ansible/.ansible/tmp/ansible-tmp-1648653403.3194852-3541-164825329395105/AnsiballZ_bigip_command.py", line 40, in invoke_module
runpy.run_module(mod_name='ansible_collections.f5networks.f5_bigip.plugins.modules.bigip_command', init_globals=None, run_name='__main__', alter_sys=True)
File "/usr/lib64/python3.6/runpy.py", line 205, in run_module
return _run_module_code(code, init_globals, run_name, mod_spec)
File "/usr/lib64/python3.6/runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_3_3nz3n_/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 675, in <module>
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_3_3nz3n_/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 667, in main
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_3_3nz3n_/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible/module_utils/connection.py", line 121, in __init__
AssertionError: socket_path must be a value
any idea?
Hi @gaetanquentin,
I did some test with the following configuration:
-
hosts: default collections:
- f5networks.f5_bigip connection: httpapi vars: ansible_host: "X.X.X.X" ansible_user: "admin" ansible_httpapi_password: "XXXXXXXXX" ansible_network_os: f5networks.f5_bigip.bigip ansible_httpapi_use_ssl: yes ansible_httpapi_validate_certs: no
tasks:
-
name: Run show version on remote devices bigip_command: commands: show sys version
-
name: Exec network_cli command with collection f5networks.f5_bigip.bigip_command: use_ssh: yes commands: - show sys hardware
and I didn't get any error. I'm not using Paramiko. Could you check without Paramiko?
Hi,
the goal is to imitate a L1 support team, writting commands on console via ssh.
so ansible must connect with network_cli+ssh, not with httpapi, and use bigip_command if possible, or cli_command.
In your configuration you have httpapi AND use_ssh:yes.
I suppose use_ssh is ignored and you are doing finaly httpapi only and not ssh.
I have not found any working network_cli+ssh solution
Regards,
Le 20/04/2022 à 18:36, Patrick a écrit :
Hi @gaetanquentin https://github.com/gaetanquentin,
I did some test with the following configuration:
hosts: default collections: o f5networks.f5_bigip connection: httpapi vars: ansible_host: "X.X.X.X" ansible_user: "admin" ansible_httpapi_password: "XXXXXXXXX" ansible_network_os: f5networks.f5_bigip.bigip ansible_httpapi_use_ssl: yes ansible_httpapi_validate_certs: no tasks: o name: Run show version on remote devices bigip_command: commands: show sys version o name: Exec network_cli command with collection f5networks.f5_bigip.bigip_command: use_ssh: yes commands: - show sys hardware
and I didn't get any error. I'm not using Paramiko. Could you check without Paramiko?
— Reply to this email directly, view it on GitHub https://github.com/F5Networks/f5-ansible/issues/2192#issuecomment-1104149013, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABMB4IJ4GJPRJHKCCJ465B3VGAXBBANCNFSM5RQEOKYA. You are receiving this because you were mentioned.Message ID: @.***>
--
Gaétan
Only doctor Who can reboot the universe.
Hi Gaétan,
I did some test and with the following configuration I can see the ssh connection traffic but I got an error maybe due to my lab. Could you run a test in your environment with the same configuration? If yes, could you run ansible-playbook with -vvv option and share the output?
-
hosts: default collections:
- f5networks.f5_bigip connection: network_cli any_errors_fatal: true
vars: ansible_host: "X.X.X.X" ansible_user: "root" ansible_ssh_password: "XXXXXXX" ansible_network_os: "f5networks.f5_bigip.bigip" ansible_port: "22" persistent_log_messages: true
tasks:
- name: Run show version on remote devices bigip_command: use_ssh: yes commands: - show sys version register: result
Hi,
with ansible 2.9.25 i had to specify the collection name in the module name, because collections keyword in the playbook seams ignored and finaly it is the standard bigip ansible module which is used.
and for network_cli connector i precise the collection too: ansible_connection: ansible.netcommon.network_cli
so the result is here:
with python 2.7 . i will give you an output with python 3.X later :
2022-04-22 09:52:03,188 p=46641 u=myaccount n=p=46641 u=myaccount | paramiko [mydevicename] | Authentication (keyboard-interactive) successful!
2022-04-22 09:52:04,610 p=46641 u=myaccount n=ansible | Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/ansible/utils/jsonrpc.py", line 45, in handle_request
result = rpc_method(*args, **kwargs)
File "/home/myaccount/.ansible/collections/ansible_collections/ansible/netcommon/plugins/connection/network_cli.py", line 479, in exec_command
return self.send(**kwargs)
File "/home/myaccount/.ansible/collections/ansible_collections/ansible/netcommon/plugins/connection/network_cli.py", line 337, in wrapped
return func(self, *args, **kwargs)
File "/home/myaccount/.ansible/collections/ansible_collections/ansible/netcommon/plugins/connection/network_cli.py", line 1007, in send
strip_prompt,
File "/home/myaccount/.ansible/collections/ansible_collections/ansible/netcommon/plugins/connection/network_cli.py", line 956, in receive
strip_prompt,
File "/home/myaccount/.ansible/collections/ansible_collections/ansible/netcommon/plugins/connection/network_cli.py", line 807, in receive_paramiko
raise AnsibleConnectionFailure(errored_response)
AnsibleConnectionFailure: tmsh -v
Syntax Error: unexpected argument "tmsh"
**mydeviceaccount@(mydevicename)(cfg-sync Standalone)(LICENSE EXPIRED)(/Common)(tmos)#**
-> so ansible is connected to the device
2022-04-22 09:52:04,938 p=46202 u=myaccount n=ansible | <mydevicename> EXEC /bin/sh -c 'rm -f -r /home/myaccount/.ansible/tmp/ansible-local-45530iXOo9y/ansible-tmp-1650613921.46-46202-135000030569364/ > /dev/null 2>&1 && sleep 0'
2022-04-22 09:52:04,971 p=45530 u=myaccount n=ansible | The full traceback is:
Traceback (most recent call last):
File "/home/myaccount/.ansible/tmp/ansible-local-45530iXOo9y/ansible-tmp-1650613921.46-46202-135000030569364/AnsiballZ_bigip_command.py", line 102, in <module>
_ansiballz_main()
File "/home/myaccount/.ansible/tmp/ansible-local-45530iXOo9y/ansible-tmp-1650613921.46-46202-135000030569364/AnsiballZ_bigip_command.py", line 94, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File "/home/myaccount/.ansible/tmp/ansible-local-45530iXOo9y/ansible-tmp-1650613921.46-46202-135000030569364/AnsiballZ_bigip_command.py", line 40, in invoke_module
runpy.run_module(mod_name='ansible_collections.f5networks.f5_bigip.plugins.modules.bigip_command', init_globals=None, run_name='__main__', alter_sys=True)
File "/usr/lib64/python2.7/runpy.py", line 176, in run_module
fname, loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 82, in _run_module_code
mod_name, mod_fname, mod_loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_ZheW1r/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 675, in <module>
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_ZheW1r/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 668, in main
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_ZheW1r/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 608, in exec_module
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_ZheW1r/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 410, in exec_module
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_ZheW1r/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/module_utils/client.py", line 192, in send_teem
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_ZheW1r/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible/module_utils/connection.py", line 185, in __rpc__
ansible.module_utils.connection.ConnectionError: Method not found
2022-04-22 09:52:04,972 p=45530 u=myaccount n=ansible | fatal: [mydevicename]: FAILED! => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"module_stderr": "Traceback (most recent call last):\n File \"/home/myaccount/.ansible/tmp/ansible-local-45530iXOo9y/ansible-tmp-1650613921.46-46202-135000030569364/AnsiballZ_bigip_command.py\", line 102, in <module>\n _ansiballz_main()\n File \"/home/myaccount/.ansible/tmp/ansible-local-45530iXOo9y/ansible-tmp-1650613921.46-46202-135000030569364/AnsiballZ_bigip_command.py\", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \"/home/myaccount/.ansible/tmp/ansible-local-45530iXOo9y/ansible-tmp-1650613921.46-46202-135000030569364/AnsiballZ_bigip_command.py\", line 40, in invoke_module\n runpy.run_module(mod_name='ansible_collections.f5networks.f5_bigip.plugins.modules.bigip_command', init_globals=None, run_name='__main__', alter_sys=True)\n File \"/usr/lib64/python2.7/runpy.py\", line 176, in run_module\n fname, loader, pkg_name)\n File \"/usr/lib64/python2.7/runpy.py\", line 82, in _run_module_code\n mod_name, mod_fname, mod_loader, pkg_name)\n File \"/usr/lib64/python2.7/runpy.py\", line 72, in _run_code\n exec code in run_globals\n File \"/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_ZheW1r/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py\", line 675, in <module>\n File \"/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_ZheW1r/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py\", line 668, in main\n File \"/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_ZheW1r/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py\", line 608, in exec_module\n File \"/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_ZheW1r/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py\", line 410, in exec_module\n File \"/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_ZheW1r/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/module_utils/client.py\", line 192, in send_teem\n File \"/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_ZheW1r/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible/module_utils/connection.py\", line 185, in __rpc__\nansible.module_utils.connection.ConnectionError: Method not found\n",
"module_stdout": "",
"module_stdout": "",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
}
launching manualy the command on the device: [..] (cfg-sync Standalone)(LICENSE EXPIRED)(/Common)(tmos)# show sys version
Sys::Version
Main Package
Product BIG-IP
Version 15.1.5
Build 0.209.10
Edition Engineering Hotfix
Date Thu Mar 24 18:20:04 PDT 2022
Hotfix List
ID1087201-5
Hi Gaétan,
The best way forward is to open a ticket with F5 support.
Regards Patrick
FYI, With python 3.6, same results:
2022-05-02 16:23:43,496 p=82164 u=myaccount n=ansible | ansible-playbook 2.9.24
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/myaccount/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/myaccount/venv3_6/lib64/python3.6/site-packages/ansible
executable location = /home/myaccount/venv3_6/bin/ansible-playbook
python version = 3.6.8 (default, May 6 2020, 12:04:35) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
[ .. ]
2022-05-02 16:23:47,481 p=82675 u=myaccount n=p=82675 u=myaccount | paramiko [mydevice] | Connected (version 2.0, client OpenSSH_7.4)
2022-05-02 16:23:47,586 p=82675 u=myaccount n=p=82675 u=myaccount | paramiko [mydevice] | Auth banner: b'\n .UNAUTHORIZED ACCESS TO THIS NETWORK DEVICE IS PROHIBITED. \n\n You must have explicit permission to access or configure this device.\n\n All activities performed on this device may be logged, and violations\n of this policy may result in disciplinary action, and may be reported\n to law enforcement.\n\n .There is no right to privacy on this device.\n\n \n'
2022-05-02 16:23:47,624 p=82675 u=myaccount n=p=82675 u=myaccount | paramiko [mydevice] | Authentication (keyboard-interactive) successful!
2022-05-02 16:23:49,118 p=82675 u=myaccount n=ansible | Traceback (most recent call last):
File "/home/myaccount/venv3_6/lib64/python3.6/site-packages/ansible/utils/jsonrpc.py", line 45, in handle_request
result = rpc_method(*args, **kwargs)
File "/usr/share/ansible/collections/ansible_collections/ansible/netcommon/plugins/connection/network_cli.py", line 479, in exec_command
return self.send(**kwargs)
File "/usr/share/ansible/collections/ansible_collections/ansible/netcommon/plugins/connection/network_cli.py", line 337, in wrapped
return func(self, *args, **kwargs)
File "/usr/share/ansible/collections/ansible_collections/ansible/netcommon/plugins/connection/network_cli.py", line 1007, in send
strip_prompt,
File "/usr/share/ansible/collections/ansible_collections/ansible/netcommon/plugins/connection/network_cli.py", line 956, in receive
strip_prompt,
File "/usr/share/ansible/collections/ansible_collections/ansible/netcommon/plugins/connection/network_cli.py", line 807, in receive_paramiko
raise AnsibleConnectionFailure(errored_response)
ansible.errors.AnsibleConnectionFailure: tmsh -v
Syntax Error: unexpected argument "tmsh"
dansible@(mydevice)(cfg-sync Standalone)(LICENSE EXPIRED)(/Common)(tmos)#
2022-05-02 16:23:49,429 p=82472 u=myaccount n=ansible | <mydevice> EXEC /bin/sh -c 'rm -f -r /home/myaccount/.ansible/tmp/ansible-local-82164q0l7iuro/ansible-tmp-1651501426.268907-82472-236714549472200/ > /dev/null 2>&1 && sleep 0'
2022-05-02 16:23:49,473 p=82164 u=myaccount n=ansible | The full traceback is:
Traceback (most recent call last):
File "/home/myaccount/.ansible/tmp/ansible-local-82164q0l7iuro/ansible-tmp-1651501426.268907-82472-236714549472200/AnsiballZ_bigip_command.py", line 102, in <module>
_ansiballz_main()
File "/home/myaccount/.ansible/tmp/ansible-local-82164q0l7iuro/ansible-tmp-1651501426.268907-82472-236714549472200/AnsiballZ_bigip_command.py", line 94, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File "/home/myaccount/.ansible/tmp/ansible-local-82164q0l7iuro/ansible-tmp-1651501426.268907-82472-236714549472200/AnsiballZ_bigip_command.py", line 40, in invoke_module
runpy.run_module(mod_name='ansible_collections.f5networks.f5_bigip.plugins.modules.bigip_command', init_globals=None, run_name='__main__', alter_sys=True)
File "/usr/lib64/python3.6/runpy.py", line 205, in run_module
return _run_module_code(code, init_globals, run_name, mod_spec)
File "/usr/lib64/python3.6/runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_8d7st1t8/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 675, in <module>
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_8d7st1t8/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 668, in main
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_8d7st1t8/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 608, in exec_module
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_8d7st1t8/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 410, in exec_module
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_8d7st1t8/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/module_utils/client.py", line 192, in send_teem
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_8d7st1t8/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible/module_utils/connection.py", line 185, in __rpc__
ansible.module_utils.connection.ConnectionError: Method not found
with a local account associated with bash, here are the results with python 3.6:
code:
- name: Exec ansible.netcommon.network_cli+ssh+ f5networks.f5_bigip.bigip_command
vars:
ansible_connection: ansible.netcommon.network_cli
ansible_network_os: f5networks.f5_bigip.bigip
ansible_persistent_log_messages: true
f5networks.f5_bigip.bigip_command:
use_ssh: yes
commands: show sys hardware
logs:
2022-06-01 13:29:39,553 p=55229 u=myuseraccount n=p=55229 u=myuseraccount | paramiko [mynetworkdevice] | Connected (version 2.0, client OpenSSH_7.4)
2022-06-01 13:29:39,661 p=55229 u=myuseraccount n=p=55229 u=myuseraccount | paramiko [mynetworkdevice] | Auth banner: b'\n .UNAUTHORIZED ACCESS TO THIS NETWORK DEVICE IS PROHIBITED. \n\n n \n'
2022-06-01 13:29:39,730 p=55229 u=myuseraccount n=p=55229 u=myuseraccount | paramiko [mynetworkdevice] | Authentication (keyboard-interactive) successful!
2022-06-01 13:29:41,391 p=55229 u=myuseraccount n=ansible | jsonrpc response: {"jsonrpc": "2.0", "id": "33775f1b-c044-4406-bd5f-d25eeca30aff", "result": "The current TMSH version is 15.1.5"}
2022-06-01 13:29:41,392 p=55229 u=myuseraccount n=ansible | jsonrpc request: b'{"jsonrpc": "2.0", "method": "exec_command", "id": "e68e47f2-06ad-4459-b7fd-85df25465304", "params": [["{\\"command\\": \\"tmsh modify cli preference pager disabled\\", \\"prompt\\": null, \\"answer\\": null}"], {}]}'
2022-06-01 13:29:41,772 p=55229 u=myuseraccount n=ansible | jsonrpc response: {"jsonrpc": "2.0", "id": "e68e47f2-06ad-4459-b7fd-85df25465304", "result": ""}
2022-06-01 13:29:41,773 p=55229 u=myuseraccount n=ansible | jsonrpc request: b'{"jsonrpc": "2.0", "method": "exec_command", "id": "054bbd70-817b-4a8a-afc3-984a3cfd92b2", "params": [["{\\"command\\": \\"tmsh -c \\\\\\"show sys hardware\\\\\\"\\", \\"prompt\\": null, \\"answer\\": null}"], {}]}'
2022-06-01 13:29:42,183 p=55229 u=myuseraccount n=ansible | jsonrpc response: {"jsonrpc": "2.0", "id": "054bbd70-817b-4a8a-afc3-984a3cfd92b2", "result": "Sys::Hardware\nChassis Information\n Maximum MAC Count 1\n Registration Key -\n\nHardware Version Information\n Name HD1 \n Type physical-disk \n Model Virtual disk \n Parameters -- --\n SerialNumber VMware-sda\n Size 76.00G\n Firmware Version 1.0\n Media Type HDD\n \n\nHardware Version Information\n Name cpus \n Type base-board \n Model Intel(R) Xeon(R) Silver 4110 CPU @ 2.10GHz\n Parameters -- --\n cache size 11264 KB\n cores 4 (physical:4)\n cpu MHz 2095.078\n cpu sockets 4\n cpu stepping 4\n \n\nPlatform\n Name BIG-IP Virtual Edition\n BIOS Revision \n Base MAC 00:50:56:89:24:0c\n Hypervisor VMware Virtual Platform\n Cloud \n\nSystem Information \n Type Z100\n Chassis Serial 42098944-d4e4-54b1-976b08a22919\n Level 200/400 Part \n Switchboard Serial \n Switchboard Part Revision \n Host Board Serial \n Host Board Part Revision"}
2022-06-01 13:29:42,184 p=55229 u=myuseraccount n=ansible | jsonrpc request: b'{"jsonrpc": "2.0", "method": "telemetry", "id": "dc30167f-a6cc-48d2-a7c3-6226e230af0a", "params": [[], {}]}'
2022-06-01 13:29:42,185 p=55229 u=myuseraccount n=ansible | jsonrpc response: {"jsonrpc": "2.0", "id": "dc30167f-a6cc-48d2-a7c3-6226e230af0a", "error": {"code": -32601, "message": "Method not found"}}
2022-06-01 13:29:42,220 p=55165 u=myuseraccount n=ansible | <mynetworkdevice> EXEC /bin/sh -c 'rm -f -r /home/myuseraccount/.ansible/tmp/ansible-local-54893gap6kx5v/ansible-tmp-1654082978.2848444-55165-178948262720562/ > /dev/null 2>&1 && sleep 0'
2022-06-01 13:29:42,247 p=54893 u=myuseraccount n=ansible | The full traceback is:
Traceback (most recent call last):
File "/home/myuseraccount/.ansible/tmp/ansible-local-54893gap6kx5v/ansible-tmp-1654082978.2848444-55165-178948262720562/AnsiballZ_bigip_command.py", line 102, in <module>
_ansiballz_main()
File "/home/myuseraccount/.ansible/tmp/ansible-local-54893gap6kx5v/ansible-tmp-1654082978.2848444-55165-178948262720562/AnsiballZ_bigip_command.py", line 94, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File "/home/myuseraccount/.ansible/tmp/ansible-local-54893gap6kx5v/ansible-tmp-1654082978.2848444-55165-178948262720562/AnsiballZ_bigip_command.py", line 40, in invoke_module
runpy.run_module(mod_name='ansible_collections.f5networks.f5_bigip.plugins.modules.bigip_command', init_globals=None, run_name='__main__', alter_sys=True)
File "/usr/lib64/python3.6/runpy.py", line 205, in run_module
return _run_module_code(code, init_globals, run_name, mod_spec)
File "/usr/lib64/python3.6/runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_74fq35i7/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 675, in <module>
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_74fq35i7/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 668, in main
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_74fq35i7/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 608, in exec_module
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_74fq35i7/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py", line 410, in exec_module
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_74fq35i7/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/module_utils/client.py", line 192, in send_teem
File "/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_74fq35i7/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible/module_utils/connection.py", line 185, in __rpc__
ansible.module_utils.connection.ConnectionError: Method not found
2022-06-01 13:29:42,248 p=54893 u=myuseraccount n=ansible | fatal: [ptfq-lval3-lab-v15qual1]: FAILED! => {
"changed": false,
"module_stderr": "Traceback (most recent call last):\n File \"/home/myuseraccount/.ansible/tmp/ansible-local-54893gap6kx5v/ansible-tmp-1654082978.2848444-55165-178948262720562/AnsiballZ_bigip_command.py\", line 102, in <module>\n _ansiballz_main()\n File \"/home/myuseraccount/.ansible/tmp/ansible-local-54893gap6kx5v/ansible-tmp-1654082978.2848444-55165-178948262720562/AnsiballZ_bigip_command.py\", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \"/home/myuseraccount/.ansible/tmp/ansible-local-54893gap6kx5v/ansible-tmp-1654082978.2848444-55165-178948262720562/AnsiballZ_bigip_command.py\", line 40, in invoke_module\n runpy.run_module(mod_name='ansible_collections.f5networks.f5_bigip.plugins.modules.bigip_command', init_globals=None, run_name='__main__', alter_sys=True)\n File \"/usr/lib64/python3.6/runpy.py\", line 205, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n File \"/usr/lib64/python3.6/runpy.py\", line 96, in _run_module_code\n mod_name, mod_spec, pkg_name, script_name)\n File \"/usr/lib64/python3.6/runpy.py\", line 85, in _run_code\n exec(code, run_globals)\n File \"/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_74fq35i7/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py\", line 675, in <module>\n File \"/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_74fq35i7/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py\", line 668, in main\n File \"/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_74fq35i7/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py\", line 608, in exec_module\n File \"/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_74fq35i7/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/modules/bigip_command.py\", line 410, in exec_module\n File \"/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_74fq35i7/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible_collections/f5networks/f5_bigip/plugins/module_utils/client.py\", line 192, in send_teem\n File \"/tmp/ansible_f5networks.f5_bigip.bigip_command_payload_74fq35i7/ansible_f5networks.f5_bigip.bigip_command_payload.zip/ansible/module_utils/connection.py\", line 185, in __rpc__\nansible.module_utils.connection.ConnectionError: Method not found\n",
"module_stdout": "",
"msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
"rc": 1
}
Regards
Hi, did you open a F5 support ticket? Please do it, and share the ID with us.
Hi, closing this request now. Please re-open if required or send an email to [email protected]. Thanks!