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 configurar dispositivos Junos

RESUMO Você pode usar o utilitário Junos PyEZ Config ou tabelas e visualizações Junos PyEZ para configurar dispositivos Junos.

O Junos PyEZ permite que você faça mudanças de configuração estruturadas e não estruturadas nos dispositivos Junos. A conta do usuário usada para fazer alterações de configuração deve ter permissões para alterar as partes relevantes da configuração em cada dispositivo. Se você não definir um usuário, o usuário será inadimplente para $USER.

As seções a seguir comparam mudanças de configuração estruturadas e não estruturadas e fornecem detalhes sobre o processo de configuração do Junos PyEZ ao fazer alterações de configuração não estruturadas usando o Config utilitário ou mudanças de configuração estruturadas usando Tabelas e visualizações.

Entender as mudanças de configuração estruturadas e não estruturadas

Alterações de configuração não estruturadas, que consistem em carregar dados de configuração estáticos ou templatizados que são formatados como texto ASCII, elementos Junos XML, comandos Junos OS set ou Notação de objetos JavaScript (JSON), são realizadas usando o jnpr.junos.utils.config.Config utilitário. Por outro lado, as mudanças de configuração estruturadas usam tabelas e visualizações de configuração do Junos PyEZ para definir recursos específicos para configurar, por exemplo, uma conta de usuário do Junos OS. Quando você adiciona a Tabela à estrutura Junos PyEZ, o Junos PyEZ cria dinamicamente uma classe de configuração para o recurso, o que permite configurar esse recurso de forma programática em um dispositivo.

Quando você usa o Config utilitário para fazer alterações de configuração não estruturadas em dispositivos Junos, você pode alterar qualquer parte da configuração, mas você deve usar um dos formatos aceitos para os dados de configuração, bem como a sintaxe correta para esse formato. Os usuários que estejam familiarizados com os formatos de configuração suportados e queiram a opção de modificar qualquer parte da configuração podem favorecer esse método para mudanças de configuração. O Config utilitário também permite que você reverta para uma configuração previamente comprometida ou carregue a configuração de resgate existente.

As mudanças de configuração estruturadas, por outro lado, exigem que você crie Tabelas e visualizações para definir recursos específicos e apenas permita que você configure os recursos definidos no dispositivo. Quando você define um recurso estruturado, você pode especificar quais declarações de configuração um usuário pode configurar para o recurso, e você também pode definir verificações de tipo e restrição para garantir que os usuários forneçam valores aceitáveis para os dados em seu aplicativo Junos PyEZ. Assim que uma tabela e uma vista forem criadas, elas podem ser facilmente compartilhadas e reutilizadas. Um usuário de Tabela pode configurar programáticamente o recurso em um dispositivo, e o usuário não requer nenhum conhecimento dos formatos de configuração suportados ou de sua sintaxe.

A Tabela 1 resume os dois métodos que o Junos PyEZ oferece suporte para fazer mudanças na configuração.

Tabela 1: Mudanças estruturadas e não estruturadas na configuração do Junos PyEZ

Tipo de mudança de configuração

Utilitário

Escopo

Formato de dados de configuração

Informações adicionais

Estruturado

Tabelas e visualizações

Limitado às declarações de configuração definidas na Tabela e visualização

Usado para fazer alterações de configuração direcionadas

Não requer conhecimento dos formatos de configuração ou de sua sintaxe

Desestruturado

jnpr.junos.utils.config.Config Classe

Qualquer parte da configuração

  • Texto

  • JSON

  • Comandos do Junos OS set

  • Junos XML

Suporta:

  • carregamento de dados de configuração de strings, objetos XML, arquivos locais ou remotos, ou Modelos Jinja2

  • carregando a configuração de resgate

  • revertendo a configuração para uma versão anterior

Este tópico discute o processo geral de configuração e as operações e elementos comuns aos dois métodos de configuração. Para obter informações detalhadas sobre a execução de atualizações de configuração usando o utilitário ou tabelas Config e visualizações, veja a documentação específica para esse método de configuração.

Para obter mais informações sobre o uso do Config utilitário para fazer alterações de configuração não estruturadas, veja os seguintes tópicos:

Para obter mais informações sobre o uso de tabelas e visualizações de configuração para fazer alterações estruturadas na configuração, veja os seguintes tópicos:

Entendendo o processo geral de configuração

O Junos PyEZ permite que você faça alterações de configuração nos dispositivos Junos. Depois de se conectar com sucesso ao dispositivo, você cria um Config objeto ou Tabela, dependendo do seu método de configuração preferido e o associa ao Device objeto. Por exemplo:

Objeto de configuração

Objeto de tabela

Por padrão, o Junos PyEZ atualiza a configuração global do candidato (também conhecida como banco de dados de configuração compartilhada). O processo básico para fazer alterações de configuração é bloquear o banco de dados de configuração, carregar as mudanças de configuração, comprometer a configuração para torná-lo ativo e, em seguida, desbloquear o banco de dados de configuração. Quando você usa o utilitário Junos PyEZ Config para fazer alterações de configuração não estruturadas no banco de dados de configuração compartilhada, você pode realizar essas ações chamando os métodos de instância apropriados descritos aqui:

  1. Bloqueie a configuração usando lock()

  2. Modifique a configuração realizando uma das seguintes ações:

  3. Comprometa a configuração usando commit() , conforme descrito em Confirmar a configuração e usar o Junos PyEZ para comprometer a configuração

  4. Desbloqueie a configuração usando unlock()

Se você usa tabelas e visualizações para fazer alterações estruturadas de configuração em um dispositivo, você pode optar por chamar, lock()load()commit()e unlock() métodos individualmente, ou pode chamar o set() método, que chama todos esses métodos automaticamente.

Nota:

O load() método executa a mesma função para objetos e Config objetos de Tabela, mas você fornece parâmetros diferentes dependendo de qual tipo de objeto chama o método.

Como especificar o modo de configuração

Por padrão, o Junos PyEZ atualiza a configuração global do candidato. Você também pode especificar um modo de configuração diferente para usar ao modificar o banco de dados de configuração. Para especificar um modo diferente do padrão, você deve criar o objeto ou Tabela Config usando um gerenciador de contexto (with ... assintaxe) e definir o mode argumento no modo desejado. Os modos suportados incluem, , , e batchephemeral. dynamicexclusiveprivate

Quando você especifica um modo diferente do padrão, o gerente de contexto lida com a abertura, o bloqueio e o fechamento e o desbloqueio do banco de dados. Isso garante que você não deixe o banco de dados sem querer em um estado bloqueado. Nesses casos, você só precisa chamar os métodos e commit() os load() métodos para configurar o dispositivo.

Os exemplos a seguir fazem alterações de configuração usando o configure private modo:

Nota:

O gerenciador de contexto lida com a abertura e o bloqueio do banco de dados de configuração emprivate, exclusive, , dynamicou batchephemeral modo. Assim, chamar os lock() ou set() métodos em um desses modos resulta em uma LockError exceção.

O Junos PyEZ permite que você atualize o banco de dados de configuração efêmero em dispositivos que oferecem suporte a este banco de dados. 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.

Nota:

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 abrir e configurar a instância padrão do banco de dados de configuração efêmero, inclua o mode='ephemeral' argumento. Por exemplo:

Para abrir e configurar uma instância definida pelo usuário do banco de dados de configuração efêmero, inclua o mode='ephemeral' argumento e configure o ephemeral_instance argumento para o nome da instância.

Como especificar a operação de carga

No Junos PyEZ, você pode carregar mudanças de configuração usando muitas das mesmas operações de carga que são suportadas no Junos OS CLI. Você especifica a operação de carga desejada incluindo ou omitindo os parâmetros apropriados no set() método ao fazer alterações de configuração estruturadas usando Tabelas e visualizações, ou no load() método para alterações de configuração estruturadas ou não estruturadas. A Tabela 2 resume as configurações de parâmetros necessárias para cada tipo de operação de carga.

Nota:

Como as operações e load update as load override operações exigem uma configuração completa, os argumentos e update=True os overwrite=True argumentos não devem ser usados ao fazer alterações de configuração usando Tabelas, que apenas modificam declarações específicas na configuração.

Tabela 2: Parâmetros para especificar o tipo de operação de carga nos métodos de carga() e set()

Operação de carga

Argumento

Descrição

Primeira versão do Junos PyEZ com suporte

load merge

merge=True

Mescle a configuração carregada com a configuração existente.

1.0

load override

overwrite=True

Substitua toda a configuração pela configuração carregada.

1.0

load patch

patch=True

Carregue dados de configuração de um arquivo de patch.

2.4.0

load replace (Padrão)

Mescle a configuração carregada com a configuração existente, mas substitua as declarações na configuração existente por aquelas que especificam a replace: tag na configuração carregada. Se não houver nenhuma declaração na configuração existente, a declaração na configuração carregada será adicionada.

1.0

load update

update=True

Carregue uma configuração completa e compare-a com a configuração existente. Cada elemento de configuração que é diferente na configuração carregada substitui seu elemento correspondente na configuração existente. Durante a operação de confirmação, apenas processos de sistema que são afetados por elementos de configuração alterados analisam a nova configuração.

2.1.0

Como criar a configuração ou o objeto da tabela como propriedade da instância do dispositivo

O Device método de classe bind() permite que você anexe várias instâncias e métodos à Device instância. Em seu aplicativo Junos PyEZ, você tem a opção de vincular o Config objeto ou tabela à Device instância. A funcionalidade dos métodos não muda, mas a execução do método difere um pouco. Por exemplo:

Como uma variável independente:

Como uma propriedade vinculada: