Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Use o Junos PyEZ para recuperar uma configuração

RESUMO Você pode criar aplicativos Junos PyEZ que recuperam dados de configuração do banco de dados de configuração especificado em um dispositivo Junos.

Os aplicativos Junos PyEZ podem executar chamadas de procedimento remoto (RPCs) sob demanda em dispositivos Junos. Após a criação de uma instância da Device classe, um aplicativo pode executar RPCs como uma 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 como usar 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 em 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 retorna 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 com 'database':'committed' a 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 compartilhado, 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, veja Entenda 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 depois solicite os dados. Para abrir a instância padrão, use um gerente de contexto para criar a Config instância e incluir 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 depois solicite os dados. Para abrir uma instância definida pelo usuário do banco de dados de configuração efêmero, use um gerente 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 leva uma string contendo o filtro de sub-árvore que seleciona as declarações de configuração para retornar. O filtro subtree devolve os dados de configuração que correspondem aos critérios de seleção.

Para solicitar várias hierarquias, a filter_xml corda 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 e [edit protocols] na 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 get_config() RPC retorna dados de configuração como XML.

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

Como nas sessões de protocolo NETCONF e Junos XML, o Junos PyEZ retorna os dados de configuração no formato esperado dentro do elemento XML apropriado para esse formato. A resposta do RPC inclui dados de configuração em XML, texto ou formatos de set 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 ser humano.

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 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 correspondente do Junos OS como uma mudança transitória na configuração de checkout.

O candidato e as configurações ativas 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 a um dos seguintes valores:

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

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

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

  • True— Recuperar todos os dados de configuração, incluindo a configuração completa do Junos OS e dados de qualquer modelo de dados YANG.

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

Se você incluir o model argumento com o valor custom, ietfou openconfig também incluir o filter_xml argumento para devolver uma subtree XML específica, o Junos OS só retorna a hierarquia correspondente do modelo de dados não nativos. Se a configuração do Junos OS contém uma hierarquia de mesmo nome, por exemplo, "interfaces", ela não está 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 retorna as configurações completas do junos OS e do candidato ao OpenConfig.

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

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 namespace determinado:

O RPC a seguir recupera a configuração completa do candidato do Junos OS, bem como os dados de configuração para 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 options argumento, que permite que você inclua um princípio 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, veja < 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> as 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 [edit system services] nível de hierarquia a partir da configuração do candidato pós-herança. Neste caso, se a configuração também contém 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 devolvidas nos dados de configuração recuperados.

Como lidar com namespaces em dados de configuração

O Junos PyEZ get_config() RPC, por padrão, elimina quaisquer namespaces nos dados de configuração devolvidos. Os aplicativos Junos PyEZ podem reter o namespace 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 namespaces 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 namespace não será incluído na saída.