Error with Ansible - socket_path must be a value
Hi I have started a few FRR containers using containerlab. From the host running the container, I can ping the router just fine. Then, I try to interact with the router using Ansible. When I use the facter module, things work just fine. However, when I use the Ansible frr.frr module, I get the following error: An exception occurred during task execution. To see the full traceback, use -vvv. The error was: AssertionError: socket_path must be a value fatal: [172.20.20.4]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n File \"/root/.ansible/tmp/ansible-tmp-1626187837.4416695-33984649570835/AnsiballZ_frr_facts.py\", line 102, in <module>\n _ansiballz_main()\n File \"/root/.ansible/tmp/ansible-tmp-1626187837.4416695-33984649570835/AnsiballZ_frr_facts.py\", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \"/root/.ansible/tmp/ansible-tmp-1626187837.4416695-33984649570835/AnsiballZ_frr_facts.py\", line 40, in invoke_module\n runpy.run_module(mod_name='ansible_collections.frr.frr.plugins.modules.frr_facts', init_globals=None, run_name='__main__', alter_sys=True)\n File \"/usr/lib/python3.8/runpy.py\", line 207, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n File \"/usr/lib/python3.8/runpy.py\", line 97, in _run_module_code\n _run_code(code, mod_globals, init_globals,\n File \"/usr/lib/python3.8/runpy.py\", line 87, in _run_code\n exec(code, run_globals)\n File \"/tmp/ansible_frr.frr.frr_facts_payload_0vramok4/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/modules/frr_facts.py\", line 425, in <module>\n File \"/tmp/ansible_frr.frr.frr_facts_payload_0vramok4/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/modules/frr_facts.py\", line 410, in main\n File \"/tmp/ansible_frr.frr.frr_facts_payload_0vramok4/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/modules/frr_facts.py\", line 134, in __init__\n File \"/tmp/ansible_frr.frr.frr_facts_payload_0vramok4/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/module_utils/network/frr/frr.py\", line 18, in get_capabilities\n File \"/tmp/ansible_frr.frr.frr_facts_payload_0vramok4/ansible_frr.frr.frr_facts_payload.zip/ansible/module_utils/connection.py\", line 121, in __init__\nAssertionError: socket_path must be a value\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1} An exception occurred during task execution. To see the full traceback, use -vvv. The error was: AssertionError: socket_path must be a value fatal: [172.20.20.6]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n File \"/root/.ansible/tmp/ansible-tmp-1626187837.3930752-95082556581940/AnsiballZ_frr_facts.py\", line 102, in <module>\n _ansiballz_main()\n File \"/root/.ansible/tmp/ansible-tmp-1626187837.3930752-95082556581940/AnsiballZ_frr_facts.py\", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \"/root/.ansible/tmp/ansible-tmp-1626187837.3930752-95082556581940/AnsiballZ_frr_facts.py\", line 40, in invoke_module\n runpy.run_module(mod_name='ansible_collections.frr.frr.plugins.modules.frr_facts', init_globals=None, run_name='__main__', alter_sys=True)\n File \"/usr/lib/python3.8/runpy.py\", line 207, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n File \"/usr/lib/python3.8/runpy.py\", line 97, in _run_module_code\n _run_code(code, mod_globals, init_globals,\n File \"/usr/lib/python3.8/runpy.py\", line 87, in _run_code\n exec(code, run_globals)\n File \"/tmp/ansible_frr.frr.frr_facts_payload_y1xygkr8/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/modules/frr_facts.py\", line 425, in <module>\n File \"/tmp/ansible_frr.frr.frr_facts_payload_y1xygkr8/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/modules/frr_facts.py\", line 410, in main\n File \"/tmp/ansible_frr.frr.frr_facts_payload_y1xygkr8/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/modules/frr_facts.py\", line 134, in __init__\n File \"/tmp/ansible_frr.frr.frr_facts_payload_y1xygkr8/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/module_utils/network/frr/frr.py\", line 18, in get_capabilities\n File \"/tmp/ansible_frr.frr.frr_facts_payload_y1xygkr8/ansible_frr.frr.frr_facts_payload.zip/ansible/module_utils/connection.py\", line 121, in __init__\nAssertionError: socket_path must be a value\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1} My Ansible playbook is: - name: testing facts hosts: routers tasks: - name: testing ansible.builtin.setup: gather_subset: - '!all' - '!any' - facter - name: Do not collect hardware facts frr.frr.frr_facts: gather_subset: - '!hardware' I read that Ansible FRR module uses SSH to communicate with the devices. However, I can't seem to ssh into the FRR router. Could that be the reason? How do I fix it? Thanks and best regards -- Saqib
Saqib, https://galaxy.ansible.com/frr/frr?extIdCarryOver=true&sc_cid=701f2000001OH7... Are you using frr.frr or frr.frr.frr to run your commands? It may be a simple change. ssh isn't normally installed in docker containers. It's normal to use 'docker exec -it $container_name /bin/bash' and you can access vtysh inside the docker container. Cheers, Phil On Tue, 13 Jul 2021 at 12:22, Saqib Ilyas <msaqib@gmail.com> wrote:
Hi I have started a few FRR containers using containerlab. From the host running the container, I can ping the router just fine. Then, I try to interact with the router using Ansible. When I use the facter module, things work just fine. However, when I use the Ansible frr.frr module, I get the following error:
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: AssertionError: socket_path must be a value fatal: [172.20.20.4]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n File \"/root/.ansible/tmp/ansible-tmp-1626187837.4416695-33984649570835/AnsiballZ_frr_facts.py\", line 102, in <module>\n _ansiballz_main()\n File \"/root/.ansible/tmp/ansible-tmp-1626187837.4416695-33984649570835/AnsiballZ_frr_facts.py\", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \"/root/.ansible/tmp/ansible-tmp-1626187837.4416695-33984649570835/AnsiballZ_frr_facts.py\", line 40, in invoke_module\n runpy.run_module(mod_name='ansible_collections.frr.frr.plugins.modules.frr_facts', init_globals=None, run_name='__main__', alter_sys=True)\n File \"/usr/lib/python3.8/runpy.py\", line 207, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n File \"/usr/lib/python3.8/runpy.py\", line 97, in _run_module_code\n _run_code(code, mod_globals, init_globals,\n File \"/usr/lib/python3.8/runpy.py\", line 87, in _run_code\n exec(code, run_globals)\n File \"/tmp/ansible_frr.frr.frr_facts_payload_0vramok4/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/modules/frr_facts.py\", line 425, in <module>\n File \"/tmp/ansible_frr.frr.frr_facts_payload_0vramok4/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/modules/frr_facts.py\", line 410, in main\n File \"/tmp/ansible_frr.frr.frr_facts_payload_0vramok4/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/modules/frr_facts.py\", line 134, in __init__\n File \"/tmp/ansible_frr.frr.frr_facts_payload_0vramok4/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/module_utils/network/frr/frr.py\", line 18, in get_capabilities\n File \"/tmp/ansible_frr.frr.frr_facts_payload_0vramok4/ansible_frr.frr.frr_facts_payload.zip/ansible/module_utils/connection.py\", line 121, in __init__\nAssertionError: socket_path must be a value\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1} An exception occurred during task execution. To see the full traceback, use -vvv. The error was: AssertionError: socket_path must be a value fatal: [172.20.20.6]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):\n File \"/root/.ansible/tmp/ansible-tmp-1626187837.3930752-95082556581940/AnsiballZ_frr_facts.py\", line 102, in <module>\n _ansiballz_main()\n File \"/root/.ansible/tmp/ansible-tmp-1626187837.3930752-95082556581940/AnsiballZ_frr_facts.py\", line 94, in _ansiballz_main\n invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n File \"/root/.ansible/tmp/ansible-tmp-1626187837.3930752-95082556581940/AnsiballZ_frr_facts.py\", line 40, in invoke_module\n runpy.run_module(mod_name='ansible_collections.frr.frr.plugins.modules.frr_facts', init_globals=None, run_name='__main__', alter_sys=True)\n File \"/usr/lib/python3.8/runpy.py\", line 207, in run_module\n return _run_module_code(code, init_globals, run_name, mod_spec)\n File \"/usr/lib/python3.8/runpy.py\", line 97, in _run_module_code\n _run_code(code, mod_globals, init_globals,\n File \"/usr/lib/python3.8/runpy.py\", line 87, in _run_code\n exec(code, run_globals)\n File \"/tmp/ansible_frr.frr.frr_facts_payload_y1xygkr8/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/modules/frr_facts.py\", line 425, in <module>\n File \"/tmp/ansible_frr.frr.frr_facts_payload_y1xygkr8/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/modules/frr_facts.py\", line 410, in main\n File \"/tmp/ansible_frr.frr.frr_facts_payload_y1xygkr8/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/modules/frr_facts.py\", line 134, in __init__\n File \"/tmp/ansible_frr.frr.frr_facts_payload_y1xygkr8/ansible_frr.frr.frr_facts_payload.zip/ansible_collections/frr/frr/plugins/module_utils/network/frr/frr.py\", line 18, in get_capabilities\n File \"/tmp/ansible_frr.frr.frr_facts_payload_y1xygkr8/ansible_frr.frr.frr_facts_payload.zip/ansible/module_utils/connection.py\", line 121, in __init__\nAssertionError: socket_path must be a value\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
My Ansible playbook is:
- name: testing facts hosts: routers tasks: - name: testing ansible.builtin.setup: gather_subset: - '!all' - '!any' - facter - name: Do not collect hardware facts frr.frr.frr_facts: gather_subset: - '!hardware'
I read that Ansible FRR module uses SSH to communicate with the devices. However, I can't seem to ssh into the FRR router. Could that be the reason? How do I fix it? Thanks and best regards -- Saqib _______________________________________________ frog mailing list frog@lists.frrouting.org https://lists.frrouting.org/listinfo/frog
participants (2)
-
Phil Wiggins -
Saqib Ilyas