Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Использование Junos PyEZ для извлечения конфигурации

Junos PyEZ приложения могут выполнять удаленные вызовы процедур (RPC) по требованию на устройствах, работающих Junos OS. После создания экземпляра класса Device приложение может запустить RPC как свойство экземпляра Device . Junos PyEZ get_config() приложения могут использовать RPC для запроса полной конфигурации или выбранных частей конфигурации как для стандартной конфигурации Junos OS, так и для данных конфигурации, соответствующей стандарту (IETF, OpenConfig) или пользовательским моделям данных YANG, которые были добавлены к устройству.

Примечание:

RPC Junos PyEZ get_config вызывает операцию Junos XML <get-configuration> . Дополнительные сведения об операции <get-configuration> и ее параметрах см. в < -конфигурации>.

В этом разделе обсуждается извлечение конфигурации с помощью Junos PyEZ get_config() RPC. Для получения сведений об использовании таблиц и представлений для получения данных конфигурации см. определение таблиц конфигурации Junos PyEZ и использование таблиц конфигурации Junos PyEZ для извлечения данных конфигурации.

Извлечение полной конфигурации кандидатов

Чтобы получить полную конфигурацию кандидатов с устройства, на Junos OS, выполните get_config() RPC. Формат вывода по умолчанию — XML. Например:

Указание базы данных источника для данных конфигурации

Когда приложение Junos PyEZ get_config() использует RPC для извлечения сведений о конфигурации с устройства, на Junos OS, по умолчанию сервер возвращает данные из базы данных кандидатов в конфигурации. Приложение Junos PyEZ также может извлекать данные конфигурации из базы данных о конфигурации или из базы данных электронной конфигурации.

База данных конфигурации кандидатов

Чтобы получить данные из базы данных кандидатов в конфигурации, выполните get_config() RPC и при желании включит любые дополнительные аргументы.

База данных о конфигурации с поручеными настройками

Чтобы получить данные из базы данных о конфигурации, options включим аргумент с в 'database':'committed' вызове get_config() RPC.

База данных электронной конфигурации

Начиная с Junos PyEZ версии 2.1.3, Junos PyEZ поддерживает операции с оперативной базой данных конфигурации устройств, которые поддерживают эту базу данных. При извлечении данных конфигурации из общей базы данных конфигурации результаты по умолчанию не включают данные из базы данных электронной конфигурации.

Примечание:

Эта база данных является альтернативной базой данных конфигурации, которая обеспечивает быстрый программный интерфейс для обновления конфигурации устройств, работающих Junos OS. База данных оперативной конфигурации является усовершенствованой функцией, которая при неправильном ее настройке может оказать серьезное негативное влияние на работу устройства. Дополнительные сведения см. в "Сведения о базе данных электронной конфигурации".

Чтобы получить данные из экземпляра по умолчанию в базе данных электронной конфигурации, сначала откройте экземпляр по умолчанию, а затем запросить данные. Чтобы открыть экземпляр по умолчанию, используйте диспетчер контекстов, чтобы создать экземпляр Config и включить аргумент mode='ephemeral' . Например:

Чтобы получить данные из конкретного экземпляра базы данных электронной конфигурации, сначала откройте этот экземпляр и затем запросим данные. Чтобы открыть экземпляр электронной базы данных, определенной пользователем, Config используйте диспетчер контекстов для создания экземпляра, mode='ephemeral' ephemeral_instance включив аргумент и включив в него имя.

Указание области данных конфигурации для возврата

В дополнение к извлечению полной конфигурации Junos OS, приложение PyEZ Junos PyEZ get_config() может извлечь определенные части конфигурации, вызвоив RPC с помощью аргумента filter_xml . Параметр filter_xml берет строку, содержащую фильтр подtree, который выбирает возвратных параметров конфигурации. Фильтр подлиности возвращает данные конфигурации, которые соответствуют критериям выбора.

Для запроса нескольких иерархий строка filter_xml должна включать корневой <configuration> элемент. В противном случае значение должно filter_xml представлять <configuration> все уровни иерархии конфигурации, начиная только под корневым элементом вниз, чтобы отобразить иерархию. Чтобы выбрать подtree, включим пустую метку для этого уровня иерархии. Чтобы вернуть конкретный объект, включим узел совпадения содержимого, определяя элемент и совпадающие значения.

Следующее Junos PyEZ [edit interfaces] [edit protocols] извлекает и печатает конфигурацию на уровнях иерархии и на уровне кандидатов:

Следующий пример извлекает и распечатает [edit system services] конфигурацию на уровне иерархии, используя для аргумента разные, но эквивалентные значения filter_xml :

В следующем примере элемент <name> иерархии <interface> <interfaces> в конфигурации post-наследование:

В следующем примере извлекается подtree для интерфейса ge-1/0/1:

Указание формата для возврата данных конфигурации

Junos PyEZ get_config() RPC вызывает операцию Junos XML <get-configuration> , которая может вернуть Junos OS данные конфигурации в Junos элементов XML, интерфейс командной строки настроек, Junos OS set команд или Нотации объектов JavaScript (JSON). По умолчанию get_config() RPC возвращает данные конфигурации в XML.

Чтобы указать формат, в котором будут возвращены данные конфигурации, Junos PyEZ options включает словарь с в 'format':'format' списке get_config() аргументов. Чтобы запросить интерфейс командной строки конфигурации, set Junos OS команд, или формата JSON, textformat установите значение в , setjsonили, соответственно,

Как и в сеансах протокола NETCONF Junos XML, Junos PyEZ возвращает данные конфигурации в ожидаемом формате, вложенном в соответствующий элемент XML для этого формата. Ответ RPC охватывает данные конфигурации в форматах XML, set <configuration>текста или команд в формате и <configuration-text><configuration-set> элементах, соответственно.

Примечание:

В зависимости от версии Python и формата выходных данных может потребоваться изменить утверждение печати, чтобы отобразить больше человекочитаемых результатов.

Извлечение данных конфигурации для стандартных или пользовательских моделей данных YANG

Стандартные или пользовательские модули YANG можно загрузить на устройства, работающие Junos OS, чтобы добавить модели данных, которые не поддерживаются стандартом Junos OS но могут поддерживаться трансляцией. Модели ненативных данных в конфигурации кандидатов настраиваются с помощью синтаксиса, определенного для этих моделей. При фиксации конфигурации сценарии трансляции модели данных преобразовывания этих данных и сфиксации соответствующей конфигурации Junos OS как переходное изменение конфигурации проверки.

Кандидат в активные конфигурации содержит данные конфигурации для ненативных моделей данных YANG в синтаксисе, определенном этими моделями. Начиная с Junos PyEZ выпуска 2.1.0, приложения Junos PyEZ могут извлекать данные конфигурации для стандартного (IETF, OpenConfig) и пользовательских моделей данных YANG, в дополнение к извлечению исходной конфигурации Junos OS, включив соответствующие аргументы в get_config() RPC. По умолчанию данные ненативной конфигурации не включены в get_config() ответ RPC.

Для получения данных конфигурации, определяемой ненативной моделью данных YANG в дополнение к извлечению Junos OS конфигурации, get_config() выполните RPC model с аргументом и namespace включит аргумент, если это необходимо. Аргумент model принимает одно из следующих значений:

  • custom- Извлекать данные конфигурации, определяемые пользовательскими моделями данных YANG. Этот аргумент необходимо включить namespace при искомом сборе данных для пользовательских моделей данных YANG.

  • ietf- Извлекать данные конфигурации, определяемую IETF моделей данных YANG.

  • openconfig- Извлекать данные конфигурации, определенные моделями данных OpenConfig YANG.

  • True- Извлекать все данные конфигурации, включая полную конфигурацию Junos OS и данные из любых моделей данных YANG.

Если указать значение ietf аргумента openconfig model, Junos PyEZ автоматически использует соответствующее пространство имен. При извлечении данных для пользовательской модели данных YANGmodel='custom'namespace, необходимо также включить аргумент с соответствующим пространством имен.

model customЕсли включить аргумент со значением (или ietfopenconfig filter_xml включить аргумент для возврата определенного подtree XML), Junos OS возвращает иерархию совпадающих данных только из ненативной модели данных. Если конфигурация Junos OS содержит иерархию с таким именем, например "interfaces", она не включается в ответ. Этот filter_xml параметр не поддерживается при использованииmodel=True.

В следующем примере get_config() RPC извлекает иерархию конфигурации OpenConfig bgp из конфигурации candidate на устройстве. Если аргумент не был filter_xml затмеен, RPC возвращает полные конфигурации Junos OS и openConfig candidate.

Следующий RPC извлекает иерархию interfaces конфигурации из конфигурации кандидатов для IETF данных YANG:

Следующий RPC извлекает иерархию l2vpn конфигурации из конфигурации кандидатов для пользовательской модели данных YANG с заданным пространством имен:

Следующий RPC извлекает полную Junos OS конфигурацию кандидатов, а также данные конфигурации для других моделей данных YANG, которые были добавлены к устройству:

Указание дополнительных параметров RPC

При использовании Junos RPC PyEZ get_config() для извлечения конфигурации, он вызывает операцию Junos XML <get-configuration> . RPC поддерживает аргумент options , который позволяет включать словарь пар ключей/значений любых атрибутов, поддерживаемых этой операцией <get-configuration> . Полный список атрибутов, поддерживаемых операцией протокола XML <get-configuration> Junos см. в < get-configuration>.

Например, get_config() RPC извлекает данные из конфигурации, пред наследуемой, <groups>в которой , <apply-groups>и <apply-groups-except><interface-range> теги являются отдельными элементами в выходных данных конфигурации. Чтобы получить данные из конфигурации после наследование, в которой отображаются утверждения, унаследованные от групп, определяющихся пользователем и диапазонов в качестве потомков унаследованных заявленией, options можно включить аргумент с 'inherit':'inherit'.

Например, следующий код извлекает конфигурацию [edit system services] иерархии на уровне иерархии из конфигурации post-наследование кандидатов. В этом случае, [edit groups global system services] если конфигурация также содержит утверждения, настроенные на уровне иерархии, [edit system services] эти утверждения будут унаследованы в иерархии в конфигурации после наследование и возвращены в полученные данные конфигурации.

Обработка пространства имен в данных конфигурации

По умолчанию Junos PyEZ get_config() RPC, в возвращенных данных конфигурации размыкает пространство имен. Junos PyEZ приложения могут сохранять пространство имен в возвращенных данных конфигурации, что позволяет загружать данные обратно на устройство, например, если необходимо быстро изменить существующую конфигурацию.

Чтобы сохранить пространства имен в данных конфигурации, включив remove_ns=False аргумент в список get_config() аргументов. Например:

В следующих усеченных выходных данных элемент <bgp> сохраняет атрибут xmlns , определяя пространство имен:

Если аргумент get_config() remove_ns=False пропущен, пространство имен не будет включено в выходные данные.