community.network icon indicating copy to clipboard operation
community.network copied to clipboard

sros_command not working with TiMOS-B-19.10.R1 SAR-7705-SR-HM -- HELP ME !!!!

Open ddedda opened this issue 4 years ago • 9 comments

OS in my PC: Static hostname: ubuntu Icon name: computer-vm Chassis: vm Machine ID: 1d838c1e31ea4fa4ae17f88f206b983f Boot ID: 577109fdb230450c9e31b16e2ce3a32d Virtualization: vmware Operating System: Ubuntu 20.04 LTS Kernel: Linux 5.4.0-28-generic Architecture: x86-64

Ansible Version:

ansible 2.9.6 config file = /etc/ansible/ansible.cfg configured module search path = ['/home/daniele/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3/dist-packages/ansible executable location = /usr/bin/ansible python version = 3.8.2 (default, Apr 27 2020, 15:53:34) [GCC 9.3.0]

My File .yml cat prova.yml

hosts: nokia
gather_facts: false
connection: local
vars:
cli:
host: “{{ inventory_hostname }}”
username: admin
password: admin

tasks:

    name: run show version on remote devices
    sros_command:
    commands:
    - show version
    provider: "{{ cli }}"
    

ISSUE***

Daniele@ubuntu:~/Scrivania/ansible/7705$ ansible-playbook -i inventory.yml prova.yml -vvvv ansible-playbook 2.9.6 config file = /etc/ansible/ansible.cfg configured module search path = ['/home/daniele/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3/dist-packages/ansible executable location = /usr/bin/ansible-playbook python version = 3.8.2 (default, Apr 27 2020, 15:53:34) [GCC 9.3.0] Using /etc/ansible/ansible.cfg as config file setting up inventory plugins host_list declined parsing /home/daniele/Scrivania/ansible/7705/inventory.yml as it did not pass its verify_file() method script declined parsing /home/daniele/Scrivania/ansible/7705/inventory.yml as it did not pass its verify_file() method Parsed /home/daniele/Scrivania/ansible/7705/inventory.yml inventory source with ini plugin Loading callback plugin default of type stdout, v2.0 from /usr/lib/python3/dist-packages/ansible/plugins/callback/default.py

PLAYBOOK: prova.yml ****************************************************************************************************************** Positional arguments: prova.yml verbosity: 4 connection: smart timeout: 10 become_method: sudo tags: ('all',) inventory: ('/home/daniele/Scrivania/ansible/7705/inventory.yml',) forks: 5 1 plays in prova.yml

PLAY [nokia] ************************************************************************************************************************* META: ran handlers

TASK [run show version on remote devices] ******************************************************************************************** task path: /home/daniele/Scrivania/ansible/7705prova.yml:12 <“ra5062”> using connection plugin network_cli (was local) <“ra5062”> starting connection from persistent connection plugin <“ra5062”> local domain socket does not exist, starting it <“ra5062”> control socket path is /home/daniele/.ansible/pc/43b50428dd <“ra5062”> local domain socket listeners started successfully <“ra5062”> unable to load cliconf for network_os sros <“ra5062”> <“ra5062”> local domain socket path is /home/daniele/.ansible/pc/43b50428dd <“ra5062”> socket_path: /home/daniele/.ansible/pc/43b50428dd ESTABLISH LOCAL CONNECTION FOR USER: daniele EXEC /bin/sh -c 'echo ~daniele && sleep 0' EXEC /bin/sh -c '( umask 77 && mkdir -p "echo /home/daniele/.ansible/tmp/ansible-tmp-1588668154.257663-78677595018116" && echo ansible-tmp-1588668154.257663-78677595018116="echo /home/daniele/.ansible/tmp/ansible-tmp-1588668154.257663-78677595018116" ) && sleep 0' Attempting python interpreter discovery EXEC /bin/sh -c 'echo PLATFORM; uname; echo FOUND; command -v '"'"'/usr/bin/python'"'"'; command -v '"'"'python3.7'"'"'; command -v '"'"'python3.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' EXEC /bin/sh -c '/usr/bin/python3 && sleep 0' Using module file /usr/lib/python3/dist-packages/ansible/modules/network/sros/sros_command.py PUT /home/daniele/.ansible/tmp/ansible-local-5264te0fqfrz/tmpz2or8__e TO /home/daniele/.ansible/tmp/ansible-tmp-1588668154.257663-78677595018116/AnsiballZ_sros_command.py EXEC /bin/sh -c 'chmod u+x /home/daniele/.ansible/tmp/ansible-tmp-1588668154.257663-78677595018116/ /home/daniele/.ansible/tmp/ansible-tmp-1588668154.257663-78677595018116/AnsiballZ_sros_command.py && sleep 0' EXEC /bin/sh -c '/usr/bin/python3 /home/daniele/.ansible/tmp/ansible-tmp-1588668154.257663-78677595018116/AnsiballZ_sros_command.py && sleep 0' EXEC /bin/sh -c 'rm -f -r /home/daniele/.ansible/tmp/ansible-tmp-1588668154.257663-78677595018116/ > /dev/null 2>&1 && sleep 0' fatal: [ra5062]: FAILED! => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "changed": false, "invocation": { "module_args": { "commands": [ "show version" ], "host": null, "interval": 1, "match": "all", "password": null, "port": null, "provider": { "host": "“ra5062”", "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "port": null, "ssh_keyfile": null, "timeout": null, "username": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER" }, "retries": 10, "ssh_keyfile": null, "timeout": null, "username": null, "wait_for": null } }, "msg": "Unable to decode JSON from response to exec_command({"command": "show version", "prompt": null, "answer": null}). Received 'None'.", "rc": 1 }

PLAY RECAP *************************************************************************************************************************** ra5062 : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

SOLUTION does anyone know the problem and how to solve it? Thanks

ddedda avatar May 05 '20 09:05 ddedda

I can confirm this. 'sros_command' seems to be broken. This issue is reproducible in ansible 2.9.10.

A downgrade to ansible 2.8.9 solves the issue.

Other issues have suggested, the newer versions fail to signal that paramiko is required. However, installing paramiko will not solve this issue in 2.9.10.

markusju avatar Jun 22 '20 06:06 markusju

Further testing shows that the latest known working release for 'sros_command' is 2.8.12. In all releases following this particular version, 'sros_command' is broken.

markusju avatar Jun 22 '20 09:06 markusju

@ddedda I suggest downgrading to 2.8.12 for now.

markusju avatar Jun 22 '20 09:06 markusju

@ddedda: Greetings! Thanks for taking the time to open this issue. In order for the community to handle your issue effectively, we need a bit more information.

Here are the items we could not find in your description:

  • component name

Please set the description of this issue with this template: https://raw.githubusercontent.com/ansible/ansible/devel/.github/ISSUE_TEMPLATE/bug_report.md

click here for bot help

ansibullbot avatar Nov 16 '20 18:11 ansibullbot

@ddedda This issue is waiting for you to provide the requested data in the description. Please edit the description or the issue will be closed.

click here for bot help

ansibullbot avatar Nov 10 '21 06:11 ansibullbot

!component =plugins/modules/network/sros/sros_command.py

dericcrago avatar Nov 18 '21 22:11 dericcrago

cc @privateip click here for bot help

ansibullbot avatar Nov 18 '21 22:11 ansibullbot

The given example works unmodified on Ansible 2.12.1:

jeroen@jvm:~$ ansible-playbook -i hosts.yml prova.yml -vvv ansible-playbook [core 2.12.1] config file = /home/jeroen/ansible.cfg configured module search path = ['/home/jeroen/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /home/jeroen/.local/lib/python3.9/site-packages/ansible ansible collection location = /home/jeroen/.ansible/collections:/usr/share/ansible/collections executable location = /home/jeroen/.local/bin/ansible-playbook python version = 3.9.5 (default, May 11 2021, 08:20:37) [GCC 10.3.0] jinja version = 2.11.2 libyaml = True Using /home/jeroen/ansible.cfg as config file host_list declined parsing /home/jeroen/hosts.yml as it did not pass its verify_file() method script declined parsing /home/jeroen/hosts.yml as it did not pass its verify_file() method Parsed /home/jeroen/hosts.yml inventory source with yaml plugin redirecting (type: modules) ansible.builtin.sros_command to community.network.sros_command redirecting (type: callback) ansible.builtin.yaml to community.general.yaml redirecting (type: callback) ansible.builtin.yaml to community.general.yaml Skipping callback 'default', as we already have a stdout callback. Skipping callback 'minimal', as we already have a stdout callback. Skipping callback 'oneline', as we already have a stdout callback.

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

PLAY [rr] ********************************************************************************************************************************************************************************************************* META: ran handlers

TASK [run show version on remote devices] ************************************************************************************************************************************************************************* task path: /home/jeroen/prova.yml:11 redirecting (type: connection) ansible.builtin.network_cli to ansible.netcommon.network_cli redirecting (type: terminal) ansible.builtin.sros to community.network.sros redirecting (type: action) ansible.builtin.sros to community.network.sros redirecting (type: action) ansible.builtin.sros to community.network.sros [WARNING]: provider is unnecessary when using network_cli and will be ignored <clab-Multipath_sros-rr> ESTABLISH LOCAL CONNECTION FOR USER: jeroen <clab-Multipath_sros-rr> EXEC /bin/sh -c '( umask 77 && mkdir -p "echo /home/jeroen/.ansible/tmp/ansible-local-1269966m7z0uefx"&& mkdir "echo /home/jeroen/.ansible/tmp/ansible-local-1269966m7z0uefx/ansible-tmp-1639264585.311731-1269970-44392069977945" && echo ansible-tmp-1639264585.311731-1269970-44392069977945="echo /home/jeroen/.ansible/tmp/ansible-local-1269966m7z0uefx/ansible-tmp-1639264585.311731-1269970-44392069977945" ) && sleep 0' redirecting (type: modules) ansible.builtin.sros_command to community.network.sros_command Using module file /home/jeroen/.local/lib/python3.9/site-packages/ansible_collections/community/network/plugins/modules/sros_command.py <clab-Multipath_sros-rr> PUT /home/jeroen/.ansible/tmp/ansible-local-1269966m7z0uefx/tmpq9y7tkfu TO /home/jeroen/.ansible/tmp/ansible-local-1269966m7z0uefx/ansible-tmp-1639264585.311731-1269970-44392069977945/AnsiballZ_sros_command.py <clab-Multipath_sros-rr> EXEC /bin/sh -c 'chmod u+x /home/jeroen/.ansible/tmp/ansible-local-1269966m7z0uefx/ansible-tmp-1639264585.311731-1269970-44392069977945/ /home/jeroen/.ansible/tmp/ansible-local-1269966m7z0uefx/ansible-tmp-1639264585.311731-1269970-44392069977945/AnsiballZ_sros_command.py && sleep 0' <clab-Multipath_sros-rr> EXEC /bin/sh -c '/usr/bin/python3 /home/jeroen/.ansible/tmp/ansible-local-1269966m7z0uefx/ansible-tmp-1639264585.311731-1269970-44392069977945/AnsiballZ_sros_command.py && sleep 0' <clab-Multipath_sros-rr> EXEC /bin/sh -c 'rm -f -r /home/jeroen/.ansible/tmp/ansible-local-1269966m7z0uefx/ansible-tmp-1639264585.311731-1269970-44392069977945/ > /dev/null 2>&1 && sleep 0' ok: [rr] => changed=false invocation: module_args: commands: - show version host: null interval: 1 match: all password: null port: null provider: null retries: 10 ssh_keyfile: null timeout: null username: null wait_for: null stdout:

  • |- TiMOS-B-21.10.R1 both/x86_64 Nokia 7750 SR Copyright (c) 2000-2021 Nokia. All rights reserved. All use subject to applicable license agreements. Built on Thu Nov 4 19:49:50 PDT 2021 by builder in /builds/c/2110B/R1/panos/main/sros

    [/] stdout_lines: META: ran handlers META: ran handlers

PLAY RECAP ******************************************************************************************************************************************************************************************************** rr : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

jbemmel avatar Dec 11 '21 23:12 jbemmel

Hi, I have the same issue with ansible version 2.9.6 and with:

ansible-playbook [core 2.12.4]
  config file = /testAlacatel/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible-playbook
  python version = 3.8.10 (default, Mar 15 2022, 12:22:08) [GCC 9.4.0]
  jinja version = 3.1.1
  libyaml = True

I have try to connect with sros_command with network_cli using paramiko and libssh. I tried to use raw command and the examples in sros_command docs but it didnt work.

redirecting (type: connection) ansible.builtin.network_cli to ansible.netcommon.network_cli
Loading collection ansible.netcommon from /root/.ansible/collections/ansible_collections/ansible/netcommon
redirecting (type: terminal) ansible.builtin.sros to community.network.sros
Loading collection community.network from /usr/local/lib/python3.8/dist-packages/ansible_collections/community/network
<192.168.1.5> attempting to start connection
<192.168.1.5> using connection plugin ansible.netcommon.network_cli
Found ansible-connection at path /usr/local/bin/ansible-connection
<192.168.1.5> local domain socket does not exist, starting it
<192.168.1.5> control socket path is /root/.ansible/pc/294ad50ddb
<192.168.1.5> redirecting (type: connection) ansible.builtin.network_cli to ansible.netcommon.network_cli
<192.168.1.5> Loading collection ansible.netcommon from /root/.ansible/collections/ansible_collections/ansible/netcommon
<192.168.1.5> redirecting (type: terminal) ansible.builtin.sros to community.network.sros
<192.168.1.5> Loading collection community.network from /usr/local/lib/python3.8/dist-packages/ansible_collections/community/network
<192.168.1.5> local domain socket listeners started successfully
<192.168.1.5> unable to load cliconf for network_os sros
<192.168.1.5> ssh type is set to libssh
<192.168.1.5> 
<192.168.1.5> local domain socket path is /root/.ansible/pc/294ad50ddb
<192.168.1.5> ESTABLISH LOCAL CONNECTION FOR USER: root
<192.168.1.5> EXEC show version
fatal: [Nokia]: FAILED! => {
    "changed": true,
    "msg": "non-zero return code",
    "rc": 127,
    "stderr": "/bin/sh: 1: show: not found\n",
    "stderr_lines": [
        "/bin/sh: 1: show: not found"
    ],
    "stdout": "",
    "stdout_lines": []
}
...ignoring

or usign sros_command

redirecting (type: connection) ansible.builtin.network_cli to ansible.netcommon.network_cli
Loading collection ansible.netcommon from /root/.ansible/collections/ansible_collections/ansible/netcommon
redirecting (type: terminal) ansible.builtin.sros to community.network.sros
<192.168.1.5> attempting to start connection
<192.168.1.5> using connection plugin ansible.netcommon.network_cli
Found ansible-connection at path /usr/local/bin/ansible-connection
<192.168.1.5> found existing local domain socket, using it!
<192.168.1.5> updating play_context for connection
<192.168.1.5> 
<192.168.1.5> local domain socket path is /root/.ansible/pc/8f7116623b
<192.168.1.5> Using network group action community.network.sros for community.network.sros_command
[WARNING]: provider is unnecessary when using network_cli and will be ignored
<192.168.1.5> ANSIBLE_NETWORK_IMPORT_MODULES: disabled
<192.168.1.5> ANSIBLE_NETWORK_IMPORT_MODULES: module execution time may be extended
<192.168.1.5> ESTABLISH LOCAL CONNECTION FOR USER: root
<192.168.1.5> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-local-6417cpfqnp0m `"&& mkdir "` echo /root/.ansible/tmp/ansible-local-6417cpfqnp0m/ansible-tmp-1649884623.8654938-6435-260489498472524 `" && echo ansible-tmp-1649884623.8654938-6435-260489498472524="` echo /root/.ansible/tmp/ansible-local-6417cpfqnp0m/ansible-tmp-1649884623.8654938-6435-260489498472524 `" ) && sleep 0'
Including module_utils file ansible/__init__.py
Including module_utils file ansible/module_utils/__init__.py
Including module_utils file ansible/module_utils/basic.py
Including module_utils file ansible/module_utils/_text.py
Including module_utils file ansible/module_utils/common/_collections_compat.py
Including module_utils file ansible/module_utils/common/__init__.py
Including module_utils file ansible/module_utils/common/_json_compat.py
Including module_utils file ansible/module_utils/common/_utils.py
Including module_utils file ansible/module_utils/common/arg_spec.py
Including module_utils file ansible/module_utils/common/file.py
Including module_utils file ansible/module_utils/common/locale.py
Including module_utils file ansible/module_utils/common/parameters.py
Including module_utils file ansible/module_utils/common/collections.py
Including module_utils file ansible/module_utils/common/process.py
Including module_utils file ansible/module_utils/common/sys_info.py
Including module_utils file ansible/module_utils/common/text/converters.py
Including module_utils file ansible/module_utils/common/text/__init__.py
Including module_utils file ansible/module_utils/common/text/formatters.py
Including module_utils file ansible/module_utils/common/validation.py
Including module_utils file ansible/module_utils/common/warnings.py
Including module_utils file ansible/module_utils/compat/selectors.py
Including module_utils file ansible/module_utils/compat/__init__.py
Including module_utils file ansible/module_utils/compat/_selectors2.py
Including module_utils file ansible/module_utils/compat/selinux.py
Including module_utils file ansible/module_utils/distro/__init__.py
Including module_utils file ansible/module_utils/distro/_distro.py
Including module_utils file ansible/module_utils/errors.py
Including module_utils file ansible/module_utils/parsing/convert_bool.py
Including module_utils file ansible/module_utils/parsing/__init__.py
Including module_utils file ansible/module_utils/pycompat24.py
Including module_utils file ansible/module_utils/six/__init__.py
Including module_utils file ansible_collections/ansible/netcommon/plugins/module_utils/network/common/parsing.py
Including module_utils file ansible_collections/__init__.py
Including module_utils file ansible_collections/ansible/__init__.py
Including module_utils file ansible_collections/ansible/netcommon/__init__.py
Including module_utils file ansible_collections/ansible/netcommon/plugins/__init__.py
Including module_utils file ansible_collections/ansible/netcommon/plugins/module_utils/__init__.py
Including module_utils file ansible_collections/ansible/netcommon/plugins/module_utils/network/__init__.py
Including module_utils file ansible_collections/ansible/netcommon/plugins/module_utils/network/common/__init__.py
Including module_utils file ansible_collections/ansible/netcommon/plugins/module_utils/network/common/utils.py
Including module_utils file ansible/module_utils/common/network.py
Including module_utils file ansible_collections/community/network/plugins/module_utils/network/sros/sros.py
Including module_utils file ansible/module_utils/connection.py
Including module_utils file ansible/module_utils/common/json.py
Including module_utils file ansible_collections/community/__init__.py
Including module_utils file ansible_collections/community/network/__init__.py
Including module_utils file ansible_collections/community/network/plugins/__init__.py
Including module_utils file ansible_collections/community/network/plugins/module_utils/__init__.py
Including module_utils file ansible_collections/community/network/plugins/module_utils/network/__init__.py
Including module_utils file ansible_collections/community/network/plugins/module_utils/network/sros/__init__.py
Using module file /usr/local/lib/python3.8/dist-packages/ansible_collections/community/network/plugins/modules/sros_command.py
<192.168.1.5> PUT /root/.ansible/tmp/ansible-local-6417cpfqnp0m/tmpl66ax4tf TO /root/.ansible/tmp/ansible-local-6417cpfqnp0m/ansible-tmp-1649884623.8654938-6435-260489498472524/AnsiballZ_sros_command.py
<192.168.1.5> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-local-6417cpfqnp0m/ansible-tmp-1649884623.8654938-6435-260489498472524/ /root/.ansible/tmp/ansible-local-6417cpfqnp0m/ansible-tmp-1649884623.8654938-6435-260489498472524/AnsiballZ_sros_command.py && sleep 0'
<192.168.1.5> EXEC /bin/sh -c '/usr/bin/python3 /root/.ansible/tmp/ansible-local-6417cpfqnp0m/ansible-tmp-1649884623.8654938-6435-260489498472524/AnsiballZ_sros_command.py && sleep 0'
<192.168.1.5> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-local-6417cpfqnp0m/ansible-tmp-1649884623.8654938-6435-260489498472524/ > /dev/null 2>&1 && sleep 0'
fatal: [Nokia]: FAILED! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "commands": [
                "show version"
            ],
            "host": null,
            "interval": 1,
            "match": "all",
            "password": null,
            "port": null,
            "provider": null,
            "retries": 10,
            "ssh_keyfile": null,
            "timeout": null,
            "username": null,
            "wait_for": null
        }
    },
    "msg": "Unable to decode JSON from response to exec_command('{\"command\": \"show version\", \"prompt\": null, \"answer\": null}'). Received 'None'.",
    "rc": 1
}

DamRCorba avatar Apr 13 '22 21:04 DamRCorba