Ajude-nos a melhorar a sua experiência.

Conte-nos a sua opinião.

Tem dois minutos para uma pesquisa?

close
keyboard_arrow_left
Guia de desenvolvedor do Junos PyEZ
Table of Contents Expand all
list Table of Contents

Esta tradução automática foi útil?

starstarstarstarstar
Go to English page
ISENÇÃO DE RESPONSABILIDADE:

Esta página será traduzida com software de tradução por máquina de terceiros. Embora esforços razoáveis tenham sido feitos para fornecer uma tradução de qualidade, a Juniper Networks não pode garantir sua exatidão. Se houver dúvidas sobre a exatidão das informações contidas nesta tradução, consulte a versão em inglês. O PDF para download está disponível apenas em inglês.

Use o Junos PyEZ para comprometer a configuração

date_range 19-Aug-22

O Junos PyEZ permite que você faça mudanças de configuração estruturadas e não estruturadas nos dispositivos Junos. Depois de se conectar ao dispositivo e modificar a configuração, você deve comprometer a configuração para torná-la ativa. Este tópico discute como comprometer a configuração e quais opções de confirmação são suportadas em aplicativos Junos PyEZ.

Como comprometer a configuração do candidato

Quando você usa o utilitário Junos PyEZ jnpr.junos.utils.config.Config para fazer alterações de configuração não estruturadas em um dispositivo, você confirma a configuração do candidato ligando para o método de Config instância commit() . Por exemplo:

content_copy zoom_out_map
          
         
               
from jnpr.junos import Device
from jnpr.junos.utils.config import Config
from jnpr.junos.exception import ConfigLoadError, CommitError

with Device(host='router1.example.com') as dev:

    with Config(dev, mode='exclusive') as cu:  
        try:
            cu.load(path='configs/mx_config.conf', merge=True)
            cu.commit()
        except (ConfigLoadError, CommitError) as err:
            print (err)

Para verificar a sintaxe da configuração sem comprometê-la, chame o commit_check() método no lugar do commit() método.

content_copy zoom_out_map
cu.commit_check()

Quando você usa tabelas e visualizações de configuração do Junos PyEZ para fazer alterações estruturadas de configuração em um dispositivo, você confirma a configuração do candidato ligando para o set() método, que automaticamente chama lock()de , load()commit() e unlock() métodos, ou ligando para os vários métodos individualmente. Por exemplo:

content_copy zoom_out_map
          
         
               
from jnpr.junos import Device
from myTables.UserConfigTable import UserConfigTable

with Device(host='router1.example.com') as dev:

    userconfig = UserConfigTable(dev)
    # ...set the values for the configuration data...
    userconfig.append()
    userconfig.set(merge=True)

Da mesma forma, você pode chamar os métodos individuais, como no seguinte exemplo:

content_copy zoom_out_map
          
         
               
from jnpr.junos import Device
from myTables.UserConfigTable import UserConfigTable

with Device(host='router1.example.com') as dev:

    userconfig = UserConfigTable(dev) 
    # ...set the values for the configuration data...
    userconfig.append()
    userconfig.lock()
    userconfig.load(merge=True)
    userconfig.commit()
    userconfig.unlock()
Nota:

Se você usar um gerenciador de contexto para criar o objeto ou tabela Config e definir o mode argumento para private, exclusive, dynamic, batchou ephemeral, você só ligar load() e commit() métodos para configurar o dispositivo. O gerenciador de contexto lida com a abertura, o bloqueio e o fechamento e o desbloqueio do banco de dados, de modo que lock()chamadas para , unlock()ou set() métodos em um desses modos resultam em uma exceção LockError.

Como especificar opções de compromisso

O Junos CLI oferece opções para a operação de confirmação, como adicionar um comentário de confirmação ou sincronizar a configuração em vários mecanismos de roteamento. O Junos PyEZ oferece suporte a muitas dessas mesmas opções de confirmação e algumas opções adicionais, que você pode usar em seu aplicativo Junos PyEZ, incluindo os argumentos apropriados na lista de argumentos do commit() método. set() A Tabela 1 descreve as opções de confirmação suportadas e fornece o comando CLI correspondente.

Tabela 1: Opções de confirmação suportadas pelo Junos PyEZ

Argumento de opção de confirmação

Descrição

Comando CLI

comment="comment"

Registre um comentário para que comprometa a operação no arquivo de log do sistema e no histórico de confirmação do dispositivo.

commit comment "comment"

confirm=(True | minutes)

Exija que uma operação de confirmação seja confirmada dentro de um tempo especificado após o compromisso inicial. Caso contrário, reverta para a configuração previamente comprometida.

Defina o argumento para True usar o tempo padrão de 10 minutos.

commit confirmed <minutes>

detail=True

Devolva um objeto XML com informações detalhadas sobre o processo de confirmação.

commit | display detail | display xml

force_sync=True

Sincronizar e comprometer a configuração em ambos os mecanismos de roteamento, mesmo que haja sessões de configuração abertas ou mudanças de configuração não comprometidas no outro Mecanismo de Roteamento.

commit synchronize force

ignore_warning=True

ignore_warning="string"

ignore_warning=["string1", "string2"]

Ignore os avisos que são levantados durante a operação de confirmação.

Defina o argumento para True ignorar todos os avisos ou definir o argumento para uma seqüência ou lista de strings especificando quais avisos ignorar.

sync=True

Sincronizar e comprometer a configuração em ambos os mecanismos de roteamento.

commit synchronize

timeout=seconds

Aguarde a conclusão da operação usando o valor especificado como tempo limite.

Comprometa comentários

Ao cometer a configuração, você pode incluir um breve comentário para descrever a finalidade das mudanças comprometidas. Para registrar um comentário descrevendo as alterações, inclua o comment parâmetro e uma seqüência de mensagens na commit() lista de argumentos ou set() métodos, conforme apropriado. Por exemplo:

content_copy zoom_out_map
          
         
               
cu.commit(comment='Configuring ge-0/0/0 interface')

Incluir o comment argumento equivale à emissão do comando de commit comment modo de configuração no CLI. O comentário está logado no arquivo de registro do sistema e incluído no histórico de confirmação do dispositivo, que você pode visualizar emitindo o show system commit comando no CLI.

Confirmar confirmar

Para exigir que uma operação de confirmação seja confirmada dentro de um tempo especificado após o compromisso inicial, inclua o confirm=minutes argumento na lista de argumentos ou set() métodocommit(), conforme apropriado.

content_copy zoom_out_map
          
         
               
cu.commit(confirm=15)

Se o confirmação não for confirmado dentro do prazo determinado, o dispositivo volta automaticamente para a configuração previamente comprometida e envia uma mensagem de transmissão para todos os usuários logados. O intervalo permitido é de 1 a 65.535 minutos. Você também pode especificar confirm=True para usar o tempo de reversão padrão de 10 minutos. Para confirmar a operação de confirmação, ligue para o commit() método.commit_check()

A operação de confirmação confirmada é útil para verificar se uma mudança de configuração funciona corretamente e não impede o acesso do gerenciamento ao dispositivo. Se a mudança impedir o acesso ou causar outros erros, a reversão automática da configuração anterior permite o acesso ao dispositivo após o prazo de reversão passar. Se você perder a conectividade com o dispositivo, você deve emitir o método Junos PyEZ open() para restaurar a conectividade.

Comprometa detalhes

Você pode revisar os detalhes de toda a operação de confirmação, incluindo o detail=True argumento na commit() lista de argumentos ou set() método. Quando você inclui este argumento, o método devolve um objeto XML com informações detalhadas sobre o processo de confirmação. O valor de devolução é equivalente ao conteúdo fechado pelo <commit-results> elemento na saída do commit | display detail | display xml comando na CLI.

content_copy zoom_out_map
          
         
               
from lxml import etree
...
commit_detail = cu.commit(detail=True)
print (etree.tostring(commit_detail, encoding='unicode'))

Comprometa a sincronização

Se o dispositivo tiver mecanismos de roteamento duplos, você pode sincronizar e comprometer a configuração em ambos os mecanismos de roteamento, incluindo o sync=True argumento na commit() lista de argumentos ou set() método.

content_copy zoom_out_map
          
         
               
cu.commit(sync=True)

Quando você inclui o sync=True argumento, o dispositivo copia a configuração do candidato armazenada no Mecanismo de Roteamento local para o outro Mecanismo de Roteamento, verifica a correção sintactica do candidato e a compromete em ambos os mecanismos de roteamento. Para forçar a operação a commit synchronize ter sucesso mesmo que haja sessões de configuração abertas ou alterações de configuração não comprometidas no outro Mecanismo de Roteamento, use o force_sync=True argumento, o que faz com que o dispositivo encerre quaisquer sessões de configuração no outro Mecanismo de Roteamento antes de sincronizar e comprometer a configuração.

content_copy zoom_out_map
          
         
               
cu.commit(force_sync=True)

Confirmar e confirmar tempo de verificação

O tempo padrão para um RPC sair é de 30 segundos. Grandes mudanças de configuração podem exceder esse valor, fazendo com que uma operação de confirmação ou confirmação de verificação seja cronometrada antes que a configuração possa ser enviada, verificada e comprometida. Para acomodar mudanças de configuração que possam exigir uma verificação de confirmação ou um tempo de confirmação maior do que o intervalo de tempo limite padrão, incluir o timeout=seconds argumento na lista de argumentos ou set() métodos commit_check()commit() e definir o intervalo de intervalo de tempo para um valor apropriado. Por exemplo:

content_copy zoom_out_map
          
         
               
cu.commit_check(timeout=60)
cu.commit(timeout=360)

Ignorar avisos

O Junos PyEZ levanta uma exceção RpcError quando a resposta do RPC contém <rpc-error> elementos com uma gravidade de aviso ou superior. Nos casos em que for necessário ou desejável eliminar as RpcError exceções levantadas em resposta a avisos, você pode incluir o commit() parâmetro do ignore_warning método. Por exemplo:

content_copy zoom_out_map
          
         
               
cu.commit(ignore_warning=True)

Para obter mais informações sobre o uso do ignore_warning parâmetro, consulte Supressão de exceções do RpcError levantadas para avisos em aplicativos Junos PyEZ.

external-footer-nav