Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Использование инструментария Java NETCONF для выполнения рабочих задач

Использование методов объекта устройства для выполнения RPC и рабочих команд

Объект NETCONF Java toolkit имеет Device способы запрашивать информацию у удаленных устройств и выполнять эксплуатационные задачи. При необходимости эти методы перегружаются и используются в различных форматах.

Выполнение RPC

Чтобы выполнить удаленный вызов процедуры (RPC), выполните вызов executeRPC() метода на объекте Device . Этот executeRPC() метод перегружен тем, что принимает String объект, объект net.juniper.netconf.XML или объект org.w3c.dom.Document в качестве аргумента. RPC обрабатывается сервером NETCONF, который возвращает ответ RPC в качестве объекта XML.

Синтаксис метода:

Следующий фрагмент кода выполняет строку Junos XML API get-chassis-inventory RPC с помощью аргумента string. RPC get-chassis-inventory эквивалентен команде show chassis hardware operational mode в команде Junos OS интерфейс командной строки (интерфейс командной строки).

Выполнение команд режима эксплуатации

Чтобы выполнить команду operational mode для запроса информации у или выполнения эксплуатационных задач на устройстве, Junos OS, runCliCommand() выполните вызов метода на объекте Device . Метод runCliCommand() посылает команду Junos OS operational mode на сервер NETCONF на удаленном устройстве. Аргумент представляет собой строку, относящуюся к команде operational mode, которую необходимо ввести в Junos OS интерфейс командной строки. RPC обрабатывается сервером NETCONF, который возвращает ответ RPC. Начиная с Junos OS 11.4, возвращаемая строка является тем же отформатированным выводом ASCII, что и в Junos OS интерфейс командной строки. Для устройств, работающих с более ранними версиями Junos OS, строка возврата содержит Junos метки XML.

Синтаксис метода:

Следующий фрагмент кода посылает команду интерфейс командной строки operational mode show chassis hardware на сервер NETCONF на устройстве, на Junos OS:

Пример: Приложение NETCONF Java для выполнения запроса эксплуатации RPC

Эта программа netCONF Java toolkit выполняет RPC для получения операционной информации с устройства, которая затем печатается в стандартном выводе. Этот пример служит учебным примером для создания и выполнения базовой программы NETCONF Java toolkit.

Требования

  • Инструментарий Java NETCONF установлен на сервер управления конфигурацией.

  • Клиентские приложения могут входить на устройство, где находится сервер NETCONF.

  • Служба NETCONF по SSH активна на устройстве, на котором расположен сервер NETCONF.

Обзор

Можно использовать инструментарий NETCONF Java для запроса операционной информации с удаленного устройства. В следующем примере показано, как создать программу NETCONF Java toolkit для выполнения операционного запроса от Junos XML API на устройстве под управлением Junos OS. В примере также объясняется, как составить код, запустить программу и проверить результаты.

Конфигурации

Создание Java-программы

Пошаговая процедура

Чтобы создать файл программы Java, который содержит код для оперативного запроса:

  1. Дайте файлу описательное имя.

    Имя файла должно быть такое же, как и имя класса. В данном примере файл и класс названы GetChassisInventory.

  2. Включим соответствующие утверждения импорта и код для классовой классификации и метода Java. main()

  3. В main()пределах создайте объект Device и вызовите метод connect() .

    Это создает сеанс NETCONF по умолчанию по SSHv2 с сервером NETCONF. Код необходимо обновить с помощью соответствующих аргументов для подключения и аутентификации на конкретном устройстве.

    После того, как Device был создан объект, можно выполнить операции NETCONF на устройстве. Полный список доступных методов, соответствующих операциям NETCONF, можно найти в документе Javadocs NETCONF Java.

  4. В качестве executeRPC() аргумента вызовите метод с помощью команды operational request RPC.

    В данном примере используется Junos XML API get-chassis-inventory RPC. Ответ, возвращенный в XML, хранится в переменной rpc_reply .

  5. Добавьте код для принятия действий в ответе RPC.

    Следующий код преобразует ответ NETCONF-сервера в строку и распечатает его на экране:

  6. Закрой ресурсы устройства и выпуска, называя close() метод на объекте устройства.

Результаты

Полная программа:

Компилятор и запуск Java-программы

Пошаговая процедура

Компилятор Java необходим для компиляции исходных кодов и создания исполняемой программы.

Чтобы составить код и запустить программу на сервере управления конфигурацией:

  1. Компиляцию файла GetChassisInventory.java .

  2. Выполните программу GetChassisInventory .

Проверки

Проверка выполнения программы

Цель

Убедитесь, что программа GetChassisInventory работает правильно.

Действий

Если программа успешно выполняется, она устанавливает соединение и создает сеанс NETCONF с указанным устройством. Программа отправляет RPC get-chassis-inventory на сервер NETCONF, а сервер отвечает запрашиваемой операционной информацией, заключенной в элемент <rpc-reply> тега. Программа печатает ответ на стандарт. Ниже приводится пример ответа RPC с некоторыми выводами, пропущенными для краткости.

Устранение неполадок

Устранение неполадок, исключений NETCONF

Проблема

Имеет место исключение NETCONF, и вы видите следующее сообщение об ошибках:

NETCONF по SSH может не быть включено на устройстве, на котором находится сервер NETCONF, или он может быть включен на другом порту.

Решение

Убедитесь, что NETCONF включена через SSH на устройстве, на котором расположен сервер NETCONF. Поскольку в примере программы не Device указан конкретный номер порта в аргументах, сеанс NETCONF установлен на порту NETCONF-over-SSH по умолчанию, 830. Чтобы проверить, включена ли netCONF по SSH на порту по умолчанию для устройства, на Junos OS на удаленном устройстве, введите на удаленном устройстве следующую команду operational mode:

Если иерархия netconf конфигурации отсутствует, в режиме конфигурации необходимо использовать следующие утверждения, чтобы включить NETCONF через SSH на порту по умолчанию:

Если иерархия netconf конфигурации указывает не порт по умолчанию, Device включите новый номер порта в аргументы конструктора объекта. Например, для NETCONF по SSH на порту 12345 настроено следующее устройство:

Чтобы исправить проблему подключения, включим в аргументы новый номер Device порта.

Пример: Приложение NETCONF Java для выполнения интерфейс командной строки команд

Эта программа NETCONF Java toolkit runCLICommand() демонстрирует метод, который посылает на сервер NETCONF указанную команду Junos OS operational mode для запроса информации у устройства, на котором выполняется Junos OS.

Требования

  • Маршруты, коммутаторы или устройство обеспечения безопасности работают Junos OS.

  • Инструментарий Java NETCONF установлен на сервер управления конфигурацией.

  • Клиентские приложения могут входить на устройство, где находится сервер NETCONF.

  • Служба NETCONF по SSH активна на устройстве, на котором расположен сервер NETCONF.

Обзор

Класс инструментария Java NETCONF Device runCliCommand() содержит метод, который используется Junos OS интерфейс командной строки рабочего режима и преобразует его в эквивалент RPC в XML, который может обрабатываться сервером NETCONF. Этот runCLICommand() метод принимает в качестве аргумента строку, представляющую команду operational mode, введенную Junos OS интерфейс командной строки.

В следующем примере выполняется show chassis hardware команда на устройстве, на Junos OS. Возвратным значением для этого метода является строка. Начиная с Junos OS 11.4, возвращаемая строка является тем же отформатированным выводом ASCII, что и в Junos OS интерфейс командной строки. Для устройств, работающих с более ранними версиями Junos OS, строка возврата содержит Junos метки XML.

Конфигурации

Создание Java-программы

Пошаговая процедура

Для создания файла программы Java:

  1. Дайте файлу описательное имя.

    Имя файла должно быть такое же, как и имя класса. В данном примере файл и класс названы ExecuteCLICommand.

  2. Добавьте в файл код и обновите переменные, специфические для среды, такие как IP-адрес удаленного хоста, имя пользователя, пароль и элементы <rpc-reply> тега.

    Здесь представлен полный код Java для программы ExecuteCLI.java .

Компилятор и запуск Java-программы

Пошаговая процедура

Компилятор Java необходим для компиляции исходных кодов и создания исполняемой программы.

Чтобы составить код и запустить программу на сервере управления конфигурацией:

  1. Компиляцию файла ExecuteCLI.java .

  2. Выполните программу ExecuteCLI.

Проверки

Проверка выполнения программы

Цель

Убедитесь, что программа ExecuteCLI Работает правильно.

Действий

Если программа успешно выполняется, она устанавливает соединение и создает сеанс NETCONF с указанным устройством. Программа преобразует команду Junos OS интерфейс командной строки operational show chassis hardware mode в RPC и отправляет RPC на сервер NETCONF. Сервер отвечает запрашиваемой <rpc-reply> операционной информацией, заключенной в элемент тега Программа проализирует ответ RPC и печатает итоговую инвентаризацию шасси. Следующий пример выходных данных взят на Juniper Networks m7i.

На устройстве, Junos OS выпуске 11.4 или более поздней версии, выходные данные в формате ASCII совпадают с выходными данными в интерфейс командной строки.

На устройстве, Junos OS выпуске 11.3 или более ранней версии, выходные данные содержат Junos элементов тега XML.

Пример: Приложение NETCONF Java для печати температур компонентов

Программа netCONF Java toolkit печатает имя и соответствующую температуру компонентов на устройстве, на Junos OS.

Требования

  • Маршруты, коммутаторы или устройство обеспечения безопасности запущены Junos OS.

  • Инструментарий Java NETCONF установлен на сервер управления конфигурацией.

  • Клиентские приложения могут входить на устройство, где находится сервер NETCONF.

  • Служба NETCONF по SSH активна на устройстве, на котором расположен сервер NETCONF.

Обзор

В следующем примере выполняется Junos XML API get-environment-information RPC, show chassis environment что эквивалентно команде operational mode на устройстве, на котором работает Junos OS. Программа проаансирует ответ RPC, и для всех компонентов, перечисляющих температуру, программа печатает имя компонента и соответствующую температуру.

Формат ответа RPC для запроса get-environment-information RPC:

Чтобы продиабировать ответ, программа использует метод findNodes() для возврата списка объектов org.w3c.dom.Node . Для каждого <environment-item> узла программа получает список "детей". Если элемент температуры присутствует в списке "детиных" узлов, программа печатает имя и температуру этого элемента окружения.

Конфигурации

Создание Java-программы

Пошаговая процедура

Для создания файла программы Java:

  1. Дайте файлу описательное имя.

    Имя файла должно быть такое же, как и имя класса. В данном примере файл и класс названы ShowTemps.

  2. Добавьте в файл код и обновите переменные, специфические для среды, такие как IP-адрес удаленного хоста, имя пользователя, пароль и элементы <rpc-reply> тега.

    Здесь представлен полный код Java для программы ShowTemps.java .

Компилятор и запуск Java-программы

Пошаговая процедура

Компилятор Java необходим для компиляции исходных кодов и создания исполняемой программы.

Чтобы составить код и запустить программу на сервере управления конфигурацией:

  1. Компилятор файла ShowTemps.java .

  2. Выполните программу ShowTemps .

Проверки

Проверка результатов

Цель

Убедитесь, что программа ShowTemps работает правильно.

Действий

Если программа успешно выполняется, она устанавливает соединение и создает сеанс NETCONF с указанным устройством. Затем программа выполняет Junos XML API get-environment-information RPC, выполняет синтаксный просмотр ответа RPC и распечатает все элементы среды, содержащие "детский" узел <temperature>.

Следующий пример выходных данных от маршрутизатора Juniper Networks m7i: