Модуль junos_command не возвращает вывод

У меня есть скрипт Ansible, в котором я просто использую модуль junos_command для получения списка пользователей из переключателя Juniper, ниже приведен фрагмент моего кода. Я продолжаю получать RuntimeWarning всякий раз, когда я пытаюсь запустить это. Более того, мне удалось запустить такие команды, как "show version", используя сам код ниже. Пожалуйста помоги

Авторсценария:

name: / GET USERS / Get list of all the current users on switch

action: junos_command

args: { commands: 'show configuration system login',
          provider: "{{ netconf }}" }

register: curr_users_on_switch

Ошибка:

TASK [/ GET USERS / Get list of all the current users on switch] ***************
fatal: [rlab-er1]: FAILED! => {"changed": false, "failed": true, "module_stderr": "/home/mbhadoria/.local/lib/python2.7/site-packages/jnpr/junos/device.py:429: RuntimeWarning: CLI command is for debug use only!
\n  warnings.warn(\"CLI command is for debug use only!\", RuntimeWarning)\nTraceback (most recent call last):
\n  File \"/tmp/ansible_lVOmPp/ansible_module_junos_command.py\", line 261, in <module>
\n    main()
\n  File \"/tmp/ansible_lVOmPp/ansible_module_junos_command.py\", line 233, in main
\n    xmlout.append(xml_to_string(response[index]))
\n  File \"/tmp/ansible_lVOmPp/ansible_modlib.zip/ansible/module_utils/junos.py\", line 79, in xml_to_string\n  File \"src/lxml/lxml.etree.pyx\", line 3350, in lxml.etree.tostring (src/lxml/lxml.etree.c:84534)\nTypeError: Type 'str' cannot be serialized.
\n", "module_stdout": "", "msg": "MODULE FAILURE", "parsed": false}

1 ответ

junos_command поддерживает только операции junos. Вы пытаетесь запустить конфигурационную команду. Следовательно, вы видите "show version", которая является действующей командой, работающей, но не "show config system login".

Для таких данных конфигурации вы можете использовать опцию rpc (get-configuration) с junos_command.

junos_command:
rpcs:
  - "get_configuration

Вы также можете использовать junos_get_config.

http://junos-ansible-modules.readthedocs.io/en/latest/junos_get_config.html

или junos_rpc

https://github.com/Juniper/ansible-junos-stdlib/blob/master/library/junos_rpc

например:

- name: Junos OS version
  hosts: all
  connection: local
  gather_facts: no
  tasks:
    - name: Get rpc run
      junos_rpc:
        host={{ inventory_hostname }}
        user=xxxx
        passwd=xxx
        rpc=get-config
        dest=get_config.conf
        filter_xml="<configuration><system><login/></system></configuration>"
      register: junos

или же

  tasks:
   - name: Get rpc run
     junos_get_config:
       host: "{{ inventory_hostname }}"
       user: xxxx
       passwd: xxxx
       logfile: get_config.log
       dest: "{{ inventory_hostname }}.xml"
       format: xml
       filter: "system/login"

ЗАДАТЬ [Get rpc run] ******************************************** *****************
......

PLAY RECAP ************************************************* *********************

xxxk: ok=1 изменено = 1 недоступно =0 не удалось =0

Другие вопросы по тегам