Как обойти невозможность использования канала в команде Junos_module

Я пытаюсь использовать ansible для автоматизации некоторых команд на устройстве Juniper. Однако команды требуют от меня использовать '|' (трубы). Читая документацию модуля Junos_command, каналы не могут быть использованы.

This module does NOT use the Junos CLI to execute the CLI command. Instead, it uses the <command> RPC over a NETCONF channel. The <command> RPC takes a CLI command as it’s input and is very similar to executing the command on the CLI, but you can NOT include any pipe modifies (i.e. | match, | count, etc.) with the CLI commands executed by this module.

Я пытался использовать escape-символы \Однако это все еще не работает.

Что-то, о чем я думал, это использование команд raw shell через ansible для ssh на устройство и запуска команды (независимо от модуля junos_command), но это похоже на большую работу, и я отказываюсь от многих полезных функций, поскольку не использую модуль.

Какие другие методы я могу использовать, чтобы фактически передать команду с конвейером, используя этот модуль.

1 ответ

Вы можете получить вывод обратно в формате XML без фильтрации каналов. Например:

    - name: show bgp summary with XML output
      juniper_junos_command:
        commands:
          - "show bgp summary"
        formats:
          - "xml"
      register: response

Затем используйте ansible xml_module, чтобы xpath фильтровал возвращаемый вывод.

https://docs.ansible.com/ansible/2.4/xml_module.html

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