Как обойти невозможность использования канала в команде 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 фильтровал возвращаемый вывод.