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 fatos dos dispositivos Junos

Entender os fatos do dispositivo Junos PyEZ

O Junos PyEZ é um microframework para Python que permite gerenciar e automatizar dispositivos Junos. O Junos PyEZ modela cada dispositivo como uma instância da jnpr.junos.device.Device classe. Após a conexão a um dispositivo Junos, os aplicativos Junos PyEZ podem recuperar fatos sobre o dispositivo. Os fatos do dispositivo são acessados como atributo facts do Device objeto. Para obter informações detalhadas sobre as chaves incluídas nos fatos do dispositivo devolvido, consulte jnpr.junos.facts.

O exemplo a seguir estabelece uma sessão NETCONF sobre SSH com o dispositivo e imprime os fatos do dispositivo. O dispositivo usa chaves SSH para autenticar o usuário.

No Junos PyEZ Release 2.0.0 e versões anteriores, quando o aplicativo chama o Device open() método para se conectar a um dispositivo, o Junos PyEZ coleta automaticamente os fatos do dispositivo para conexões NETCONF-over-SSH e reúne os fatos do dispositivo para conexões Telnet e console em série quando você inclui gather_facts=True explicitamente na lista de Device argumentos.

A partir do Junos PyEZ Release 2.1.0, os fatos dos dispositivos são coletados sob demanda para todos os tipos de conexão. Cada fato é coletado e armazenado em cache na primeira vez que o aplicativo acessa seu valor ou o valor de um fato dependente. Ao imprimir ou usar fatos do dispositivo, os fatos acessados anteriormente são servidos do cache, e os fatos que ainda não foram acessados são recuperados do dispositivo. Se um fato não for suportado em uma determinada plataforma, ou se o aplicativo encontrar um problema reunindo o valor de um fato específico, então o valor desse fato é None.

O Junos PyEZ armazena um fato de dispositivo quando acessa pela primeira vez o fato ou um fato dependente, mas não atualiza o valor em cache no acesso subsequente. Para atualizar os fatos do dispositivo, ligue para o facts_refresh() método. O facts_refresh() método esvazia o cache de todos os fatos, de modo que, quando o aplicativo acessar um fato em seguida, ele o recupera do dispositivo e armazena o valor atual no cache.

Para atualizar apenas um único fato ou um conjunto de fatos, inclua o keys argumento no facts_refresh() método e especifique as chaves para limpar do cache. Por exemplo:

Nota:

Começando no Junos PyEZ Release 2.0.0, exceções que ocorrem ao reunir fatos levantam um aviso em vez de um erro, o que permite que o script continue em execução.

Por padrão, o Junos PyEZ devolve os fatos do dispositivo como um objeto semelhante a um dicionário. A partir do Junos PyEZ Release 2.2.1, você pode visualizar os fatos do dispositivo na Notação de Objetos JavaScript (JSON). Para ver uma representação JSON dos fatos, importar o json módulo e chamar a json.dumps() função.

Exemplo: recupere fatos de um dispositivo Junos

Com o Junos PyEZ, você pode executar rapidamente comandos no modo interativo Python ou criar programas para realizar tarefas. O exemplo a seguir estabelece uma sessão NETCONF sobre SSH com um dispositivo Junos e recupera e imprime fatos para o dispositivo usando um programa Python simples e um modo interativo Python. Os exemplos usam chaves SSH existentes para autenticação.

Para criar um aplicativo Junos PyEZ que estabelece uma sessão NETCONF sobre SSH com um dispositivo Junos e imprime os fatos do dispositivo:

  1. Em seu editor favorito, crie um novo arquivo com um nome descritivo que usa a extensão do arquivo .py .
  2. Importe a Device classe e quaisquer outros módulos ou objetos necessários para suas tarefas.
  3. Crie a instância do dispositivo e forneça o nome de host, quaisquer parâmetros necessários para a autenticação e quaisquer parâmetros opcionais.
  4. Conecte-se ao dispositivo ligando para o open() método.
  5. Imprima os fatos do dispositivo.
    Ponta:

    Para atualizar os fatos para um dispositivo, ligue para o facts_refresh() método, por exemplo dev.facts_refresh().

  6. Feche a conexão com o dispositivo.
  7. Economize e execute o programa.

Todo o programa é apresentado aqui:

Você também pode executar rapidamente as mesmas operações no modo python interativo.

O vídeo a seguir apresenta uma curta sessão Python que demonstra como usar o Junos PyEZ para se conectar e recuperar fatos de um dispositivo Junos.

Tabela de histórico de lançamento
Lançamento
Descrição
2.1.0
A partir do Junos PyEZ Release 2.1.0, os fatos dos dispositivos são coletados sob demanda para todos os tipos de conexão.
2.0.0
Começando no Junos PyEZ Release 2.0.0, exceções que ocorrem ao reunir fatos levantam um aviso em vez de um erro, o que permite que o script continue em execução.