Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Exemplo: altere a configuração usando scripts Python Op

Os scripts de operação permitem que você faça alterações controladas na configuração do Junos OS. Os scripts de operação são vantajosos, pois podem coletar informações operacionais sobre um dispositivo e atualizar a configuração com base nessas informações. Usuários experientes que estejam familiarizados com o Junos OS podem escrever scripts de operação que solicitam as informações de configuração relevantes e modificam a configuração de acordo. Isso permite que usuários com menos experiência com o Junos OS modifiquem a configuração com segurança usando o script. Este exemplo demonstra como fazer mudanças na configuração do Junos OS usando um script de operação Python que utiliza APIs Junos PyEZ.

Requisitos

Este exemplo usa os seguintes componentes de hardware e software:

  • Roteador da Série MX executando o Junos OS Versão 16.1R3 ou versão posterior que inclui o pacote de extensões Python.

Visão geral e script de op

Os scripts de operação Python podem fazer alterações na configuração do Junos OS usando o utilitário Junos PyEZjnpr.junos.utils.config.Config. O utilitário Junos PyEZ Config fornece métodos de instância para bloquear a configuração, carregar os dados de configuração e especificar como integrá-los à configuração, comprometer a configuração e desbloquear a configuração. Para obter mais informações sobre o uso do Junos PyEZ para configurar dispositivos Junos, consulte o uso do Junos PyEZ para configurar dispositivos Junos. O script op python neste exemplo demonstra como atualizar a configuração para desativar uma interface no dispositivo local.

O script de operação Python importa o seguinte:

  • Device classe — lida com a conexão com o dispositivo Junos

  • Config classe — executa comandos de modo de configuração no dispositivo alvo

  • jnpr.junos.exception módulo — contém exceções encontradas ao gerenciar dispositivos Junos

  • jcs módulo — permite que o script execute funções de extensão suportadas

Neste exemplo, a usage variável é inicializada com uma descrição geral da função do script. Quando o script é executado, o script cria a descrição de uso na CLI para que o usuário possa verificar a finalidade desse script.

O script chama a função de jcs.get_input() extensão, que leva o usuário a inserir o nome da interface para desabilitar, e armazena o nome da interface interface na variável. A config_xml variável é uma string XML que define as mudanças de configuração.

O script não fornece um parâmetro de host ao criar a instância, o Device que faz com que o open() método estabeleça uma conexão com o dispositivo local. Este exemplo cria a Config instância usando um gerenciador de contexto para mode='exclusive' obter um bloqueio exclusivo na configuração enquanto ela está sendo modificada. Nesse modo, o gerenciador de contexto lida automaticamente com o bloqueio e o desbloqueio da configuração do candidato. Os Config métodos de utilidade carregam as alterações de configuração na configuração do candidato como uma load merge operação e confirmam a configuração. O dev.close() método fecha a conexão.

Python Script

Configuração

Procedimento passo a passo

Baixar, habilitar e testar o script:

  1. Copie o script em um arquivo de texto, nomeie o arquivo config-change.py e copie-o para o /var/db/scripts/op/ directory no dispositivo.

    Nota:

    Os scripts Python não assinados devem ser de propriedade de uma raiz ou de um usuário na classe de login do Junos OS super-user , e apenas o proprietário do arquivo pode ter permissão de gravação para o arquivo.

  2. No modo de configuração, inclua a file config-change.py declaração no nível de [edit system scripts op] hierarquia.

  3. Habilite a execução de scripts Python não assinados no dispositivo.

    Nota:

    Configure a declaração para usar o language python3 Python 3 para executar scripts Python ou configurar a declaração para usar o language python Python 2.7 para executar scripts Python. Para obter mais informações, consulte a linguagem.

  4. Emita o commit and-quit comando para comprometer a configuração e voltar ao modo operacional.

  5. Antes de executar o script, emita o comando do show interfaces interface-name modo operacional e registre o estado atual da interface que será desativado pelo script.

  6. Execute o script de operação emitindo o comando do op config-change.py modo operacional.

Verificação

Verificando o compromisso

Propósito

Verifique se o compromisso foi bem sucedido.

Ação

Você deve incluir um código em seu script que captura quaisquer avisos ou erros associados à mudança e ao comprometimento da configuração. Com isso, você pode determinar com mais facilidade se o compromisso foi bem-sucedido. Se não houver mensagens de aviso ou erro, você pode verificar o sucesso do commit de várias maneiras.

  • Verifique o registro de confirmação para verificar se o confirmação foi bem-sucedido.

  • Verifique o arquivo de mensagens de syslog para verificar se a operação de confirmação foi registrada. Nesse caso, você também vê uma SNMP_TRAP_LINK_DOWN mensagem para a interface desabilitada. Dependendo das configurações de configuração para rastreamentos, essa mensagem pode ou não aparecer em seu arquivo de registro.

Verificando as mudanças de configuração

Propósito

Verifique se as alterações corretas estão integradas à configuração.

Ação

  • Exibir a configuração e verificar se as alterações são visíveis para a interface especificada.

  • Por exemplo, você também pode emitir o comando de show interfaces interface-name modo operacional para verificar se a interface foi desativada. Nesse caso, a saída capturada antes da interface ser desativada mostra que a interface é Enabled.

    A saída capturada após executar o script para desabilitar a interface mostra que a interface está agora Administratively down.