Модуль 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