Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Usando o Junos PyEZ para recuperar uma configuração

Os aplicativos Junos PyEZ podem executar chamadas de procedimento remoto (RPCs) sob demanda em dispositivos Junos. Depois de criar uma instância da Device classe, um aplicativo pode executar RPCs como propriedade da Device instância. Os aplicativos Junos PyEZ podem usar o get_config() RPC para solicitar a configuração completa ou partes selecionadas da configuração tanto para a configuração nativa do Junos OS quanto para dados de configuração correspondentes aos modelos de dados padrão (IETF, OpenConfig) ou yang personalizados que foram adicionados ao dispositivo.

Nota:

O Junos PyEZ get_config RPC invoca a operação de protocolo <get-configuration> Junos XML. Para obter mais informações sobre a <get-configuration> operação e suas opções, consulte < configuração deget>.

Este tópico discute como recuperar a configuração usando o Junos PyEZ get_config() RPC. Para obter informações sobre o uso de Tabelas e Visualizações para recuperar dados de configuração, consulte Definir tabelas de configuração do Junos PyEZ e usar tabelas de configuração do Junos PyEZ para recuperar dados de configuração.

Recuperar a configuração completa do candidato

Para recuperar a configuração completa do candidato de um dispositivo Junos, execute o get_config() RPC. O formato de saída padrão é XML. Por exemplo:

Especifique o banco de dados de origem para os dados de configuração

Quando um aplicativo Junos PyEZ usa o get_config() RPC para recuperar informações de configuração de um dispositivo Junos, por padrão, o servidor devolve dados do banco de dados de configuração do candidato. Um aplicativo Junos PyEZ também pode recuperar dados de configuração do banco de dados de configuração comprometido ou do banco de dados de configuração efêmero.

Banco de dados de configuração de candidatos

Para recuperar dados do banco de dados de configuração do candidato, execute o get_config() RPC e inclua opcionalmente quaisquer argumentos adicionais.

Banco de dados de configuração comprometido

Para recuperar dados do banco de dados de configuração comprometido, inclua o options argumento na 'database':'committed' get_config() chamada de RPC.

Banco de dados de configuração efêmero

O Junos PyEZ oferece suporte a operações no banco de dados de configuração efêmero em dispositivos que oferecem suporte a este banco de dados. Quando você recupera dados de configuração do banco de dados de configuração compartilhada, por padrão, os resultados não incluem dados do banco de dados de configuração efêmero.

Nota:

O banco de dados efêmero é um banco de dados de configuração alternativo que fornece uma interface programática rápida para realizar atualizações de configuração em dispositivos Junos. O banco de dados de configuração efêmero é um recurso avançado que, se usado incorretamente, pode ter um impacto negativo sério na operação do dispositivo. Para obter mais informações, consulte Entendendo o banco de dados de configuração Efêmero.

Para recuperar dados da instância padrão do banco de dados de configuração efêmero, primeiro abra a instância efêmera padrão e, em seguida, solicite os dados. Para abrir a instância padrão, use um gerenciador de contexto para criar a Config instância e inclua o mode='ephemeral' argumento. Por exemplo:

Para recuperar dados de uma instância específica do banco de dados de configuração efêmero, primeiro abra a instância efêmera e, em seguida, solicite os dados. Para abrir uma instância definida pelo usuário do banco de dados de configuração efêmera, use um gerenciador de contexto para criar a Config instância, incluir o mode='ephemeral' argumento e definir o ephemeral_instance argumento para o nome da instância efêmera.

Especifique o escopo dos dados de configuração para retornar

Além de recuperar a configuração completa do Junos OS, um aplicativo Junos PyEZ pode recuperar partes específicas da configuração invocando o get_config() RPC com o filter_xml argumento. O filter_xml parâmetro requer uma seqüência contendo o filtro de sub-árvore que seleciona as declarações de configuração para retornar. O filtro de sub-árvore devolve os dados de configuração que correspondem aos critérios de seleção.

Para solicitar várias hierarquias, a filter_xml cadeia deve incluir o <configuration> elemento raiz. Caso contrário, o valor deve filter_xml representar todos os níveis da hierarquia de configuração começando apenas sob o elemento raiz <configuration> até a hierarquia a ser exibida. Para selecionar uma sub-árvore, inclua a tag vazia para esse nível de hierarquia. Para devolver um objeto específico, inclua um nó de correspondência de conteúdo que define o elemento e o valor a combinar.

O aplicativo Junos PyEZ a seguir recupera e imprime a configuração nos [edit interfaces] níveis de hierarquia na [edit protocols] configuração do candidato:

O exemplo a seguir recupera e imprime a configuração no nível de [edit system services] hierarquia usando valores diferentes, mas equivalentes para o filter_xml argumento:

O exemplo a seguir recupera o <name> elemento para cada <interface> elemento sob a <interfaces> hierarquia na configuração do candidato pós-herança:

O exemplo a seguir recupera a sub-árvore para a interface ge-1/0/1:

Especifique o formato para que os dados de configuração retornem

O Junos PyEZ get_config() RPC invoca a operação de protocolo <get-configuration> Junos XML, que pode devolver dados de configuração do Junos OS como elementos Junos XML, declarações de configuração CLI, comandos Junos OS set ou Notação de objetos JavaScript (JSON). Por padrão, o RPC devolve dados get_config() de configuração como XML.

Para especificar o formato para devolver os dados de configuração, o aplicativo Junos PyEZ inclui o options dicionário com 'format':'format' na get_config() lista de argumentos. Para solicitar declarações de configuração de CLI, os comandos do Junos OS set ou o formato JSON definem o format valor para text, setou json, respectivamente.

Como nas sessões de protocolo NETCONF e Junos XML, o Junos PyEZ devolve os dados de configuração no formato esperado fechado dentro do elemento XML apropriado para esse formato. A resposta do RPC inclui dados de configuração em XML, texto ou set formatos de comando em <configuration>, <configuration-text>e <configuration-set> elementos, respectivamente.

Nota:

Dependendo da versão do Python e do formato da saída, você pode precisar modificar a declaração de impressão para exibir uma saída mais legível pelo homem.

Recuperar dados de configuração para modelos de dados YANG padrão ou personalizados

Você pode carregar módulos YANG padronizados ou personalizados em dispositivos Junos para adicionar modelos de dados que não são suportados nativamente pelo Junos OS, mas que podem ser suportados pela tradução. Você configura modelos de dados não nativos na configuração do candidato usando a sintaxe definida para esses modelos. Quando você confirma a configuração, os scripts de tradução do modelo de dados traduzem esses dados e confirmam a configuração do Junos OS correspondente como uma mudança transitória na configuração de checkout.

As configurações ativas e candidatas contêm os dados de configuração para modelos de dados YANG não nativos na sintaxe definida por esses modelos. Os aplicativos Junos PyEZ podem recuperar dados de configuração para modelos de dados YANG padrão e personalizados, além de recuperar a configuração nativa do Junos OS, incluindo os argumentos apropriados no get_config() RPC. Por padrão, os dados de configuração não nativos não estão incluídos na resposta do get_config() RPC.

Para recuperar dados de configuração definidos por um modelo de dados YANG não nativo, além de recuperar a configuração do Junos OS, executar o get_config() RPC com o model argumento e incluir o namespace argumento quando apropriado. O model argumento leva um dos seguintes valores:

  • custom— Recupere dados de configuração definidos por modelos de dados YANG personalizados. Você deve incluir o argumento ao namespace recuperar dados para modelos de dados YANG personalizados.

  • ietf— Recupere dados de configuração definidos pelos modelos de dados IETF YANG.

  • openconfig— Recupere dados de configuração definidos pelos modelos de dados OpenConfig YANG.

  • True— Recupere todos os dados de configuração, incluindo a configuração completa do Junos OS e os dados de quaisquer modelos de dados YANG.

Se você especificar o ou openconfig o ietf valor do argumento, o model Junos PyEZ usará automaticamente o espaço de nome apropriado. Se você recuperar dados para um modelo de dados YANG personalizado usandomodel='custom', você também deve incluir o namespace argumento com o espaço de nome correspondente.

Se você incluir o model argumento com o valor custom, ietfou openconfig também incluir o filter_xml argumento para devolver uma sub-árvore XML específica, o Junos OS só retorna a hierarquia correspondente do modelo de dados não nativo. Se a configuração do Junos OS contiver uma hierarquia de mesmo nome, por exemplo, "interfaces", ela não estará incluída na resposta. A opção filter_xml não é suportada ao usar model=True.

No exemplo a seguir, o get_config() RPC recupera a hierarquia de configuração do OpenConfig bgp a partir da configuração do candidato no dispositivo. Se você omitir o filter_xml argumento, o RPC devolve as configurações completas de candidatos ao Junos OS e OpenConfig.

O RPC a seguir recupera a interfaces hierarquia de configuração da configuração de candidato para um modelo de dados IETF YANG:

O RPC a seguir recupera a l2vpn hierarquia de configuração da configuração do candidato para um modelo de dados YANG personalizado com o determinado namespace:

O RPC a seguir recupera a configuração completa do candidato ao Junos OS, bem como os dados de configuração de outros modelos de dados YANG que foram adicionados ao dispositivo:

Especifique opções adicionais de RPC

Quando você usa o Junos PyEZ get_config() RPC para recuperar a configuração, ele invoca a operação de protocolo <get-configuration> Junos XML. O RPC oferece suporte ao argumento, que options permite incluir um dicionário de pares de chave/valor de quaisquer atributos suportados pela <get-configuration> operação. Para obter a lista completa de atributos suportados pela operação de protocolo <get-configuration> Junos XML, consulte < configuração deget>.

Por exemplo, o get_config() RPC recupera dados da configuração pré-herança, na qual as <apply-groups-except><groups><apply-groups>etiquetas e <interface-range> etiquetas são elementos separados na saída de configuração. Para recuperar dados da configuração pós-herança, que exibe declarações herdadas de grupos definidos pelo usuário e varia conforme crianças das declarações herdadas, você pode incluir o options argumento com 'inherit':'inherit'.

Por exemplo, o código a seguir recupera a configuração no nível hierárquico [edit system services] da configuração do candidato pós-herança. Nesse caso, se a configuração também contiver declarações configuradas no nível de [edit groups global system services] hierarquia, essas declarações seriam herdadas sob a [edit system services] hierarquia na configuração pós-herança e retornadas nos dados de configuração recuperados.

Como lidar com espaços de nome em dados de configuração

O Junos PyEZ get_config() RPC, por padrão, elimina quaisquer espaços de nome nos dados de configuração devolvidos. Os aplicativos Junos PyEZ podem reter o espaço de nome nos dados de configuração devolvidos, o que permite carregar os dados de volta em um dispositivo, como quando você deseja modificar rapidamente a configuração existente.

Para reter espaços de nome nos dados de configuração, inclua o remove_ns=False argumento na get_config() lista de argumentos. Por exemplo:

Na saída truncada a seguir, o <bgp> elemento retém o xmlns atributo que define o namespace:

Se o get_config() remove_ns=False argumento for omitido, o espaço de nome não está incluído na saída.