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

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 mudanças de configuração não estruturadas usando o Config utilitário ou mudanças de configuração estruturadas usando Tabelas e visualizações.

Entender mudanças estruturadas e de configuração 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 JSON (JavaScript Object Notation), são executadas usando o jnpr.junos.utils.config.Config utilitário. Por outro lado, mudanças estruturadas de configuração 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 programáticamente 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. Usuários familiarizados com os formatos de configuração suportados e que desejam a opção de modificar qualquer parte da configuração podem favorecer este 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 estruturadas de configuração, por outro lado, exigem que você crie Tabelas e Visualizações para definir recursos específicos e apenas permita configurar 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 visualização forem criadas, elas podem ser facilmente compartilhadas e reutilizados. Um usuário de Tabela pode configurar programáticamente o recurso em um dispositivo, e o usuário não requer nenhum conhecimento de formatos de configuração suportados ou sua sintaxe.

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

Tabela 1: Mudanças estruturadas e não estruturadas de 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 mudanças de configuração direcionadas

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

Desestruturado

jnpr.junos.utils.config.Config Classe

Qualquer parte da configuração

  • Texto

  • JSON

  • Comandos do Junos OS set

  • Junos XML

Suporta:

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

  • carregando a configuração de resgate

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

Este tópico discute o processo de configuração geral e as operações e elementos comuns a ambos os 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, consulte a documentação específica desse 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 mudanças estruturadas de configuração, veja os seguintes tópicos:

Entendendo o processo de configuração geral

O Junos PyEZ permite que você faça mudanças 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 ligando para 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 no Commit the Configuration e use o Junos PyEZ para comprometer a configuração

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

Se você usar tabelas e visualizações para fazer mudanças estruturadas de configuração em um dispositivo, você pode optar por chamar, lock()load(), commit()e unlock() métodos individualmente, ou você 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 ... as sintaxe) e definir o mode argumento para o modo desejado. Os modos suportados incluem private, exclusive, dynamic, , batche ephemeral.

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 ligar e commit() usar os load() métodos para configurar o dispositivo.

Os exemplos a seguir fazem mudanças 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 em private, exclusive, , dynamic, batchou ephemeral modo. Assim, chamar os lock() ou set() métodos em um desses modos resulta em uma LockError exceção.

O Junos PyEZ permite atualizar 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, consulte Entendendo 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êmera, inclua o mode='ephemeral' argumento e defina 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 mudanças estruturadas de configuração 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 load override operações exigem load update 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 conjunto()

Operação de carga

Argumento

Descrição

Versão do Junos PyEZ com suporte inicialmente

load merge

merge=True

Mesclam a configuração de carga com a configuração existente.

1.0

load override

overwrite=True

Substitua toda a configuração pela configuração de carga.

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 de carga com a configuração existente, mas substitua as declarações na configuração existente por aquelas que especificam a replace: tag na configuração de carga. Se não houver nenhuma declaração na configuração existente, a declaração na configuração de carga será adicionada.

1.0

load update

update=True

Compare a configuração completa e cheia com a configuração existente. Cada elemento de configuração diferente na configuração de carga substitui o elemento correspondente na configuração existente. Durante a operação de confirmação, apenas processos de sistema afetados por elementos de configuração alterados analisam a nova configuração.

2.1.0

Como criar o objeto de configuração ou 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 ligeiramente. Por exemplo:

Como uma variável autônoma:

Como uma propriedade vinculada: