Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Entender os scripts de automação python para dispositivos Junos

Visão geral dos scripts python

Como uma alternativa ao SLAX e xSLT, você pode criar e executar scripts Python em dispositivos Junos que oferecem suporte ao pacote de extensões Python na imagem do software. Python é uma linguagem prática e rica em recursos com amplo suporte de biblioteca que permite criar scripts personalizados. A Tabela 1 descreve as versões Python disponíveis nos dispositivos Junos e observa a versão em que o suporte para essa versão foi adicionado ou removido para determinados tipos de scripts.

Tabela 1: Versões python em dispositivos que executam o Junos OS

Versão Python

Lançamento

Mudar

Tipos de script afetados

Python 2.7.x

Junos OS Versão 16.1R1 e posterior

Suporte adicionado

Confirmar, eventos, op e scripts SNMP

Scripts do Juniper Extension Toolkit (JET)

Scripts de ação e tradução yang

Versão do Junos OS 20.2R1 e posterior

Suporte removido

Scripts de ação e tradução yang

Versão do Junos OS 21.1R1 e posterior

Suporte removido

Confirmar, eventos, op e scripts SNMP

Scripts do Juniper Extension Toolkit (JET)

Junos OS Evolved Release 22.3R1 e posterior

Suporte removido

Confirmar, eventos, op e scripts SNMP

Scripts do Juniper Extension Toolkit (JET)

Scripts de ação e tradução yang

Python 3.x

Junos OS Versão 19.4R1 e posterior

Suporte adicionado

Confirmar, eventos, op e scripts SNMP

Versão do Junos OS 20.2R1 e posterior

Suporte adicionado

Scripts do Juniper Extension Toolkit (JET)

Scripts de ação e tradução yang

Junos OS Evolved Release 21.1R1 e posterior

Suporte adicionado

Consulte o Feature Explorer para plataformas compatíveis.

Confirmar, eventos, op e scripts SNMP

Scripts do Juniper Extension Toolkit (JET)

Scripts de ação e tradução yang

Nota:

A data de fim de vida útil e fim de suporte do Python era 1º de janeiro de 2020. O caminho de atualização oficial para Python 2.7 é para Python 3. Como o suporte ao Python 3 é adicionado aos dispositivos que executam o Junos OS para os diferentes tipos de scripts de onbox, recomendamos que você migre tipos de script suportados do Python 2 para o Python 3.

Os scripts Python podem aproveitar todos os recursos e construções na linguagem Python, que fornece flexibilidade sobre SLAX e XSLT e permite que você realize operações difíceis ou impossíveis de realizar em SLAX e XSLT. SLAX e XSLT foram projetados para processar dados XML, mas o Python é adequado para processar qualquer formato. O Python oferece suporte a uma extensa lista de tipos de dados, incluindo listas, dicionários, conjuntos e tuples, e muitas variáveis Python são mutáveis, ao contrário da maioria das variáveis SLAX e XSLT. O controle de loop é limitado em scripts SLAX e XSLT, mas os scripts Python podem usar declarações como break e continue controlar o comportamento do loop com precisão. O Python também tem um suporte extensivo para operações de arquivo, e você pode invocar o debugger Python padrão na linha de comando para depurar scripts de op Python.

Além disso, o Junos OS oferece suporte aos seguintes scripts Python:

  • A biblioteca Junos PyEZ simplifica a execução de RPCs e o desempenho de tarefas operacionais e de configuração em dispositivos que executam o Junos OS.

  • lxml biblioteca — simplifica o tratamento do XPath.

  • Biblioteca Jinja2 — mecanismo de modelo que permite gerar conteúdo a partir de templates predefinidos, o que pode ser útil para gerar dados de configuração do Junos OS.

  • IPv6 — Começando no Junos OS Release 19.3R1, dispositivos que executam o Junos OS com suporte gratuito atualizado usando IPv6 em scripts de automação Python. Para obter mais informações, consulte o suporte IPv6 em scripts de automação Python.

  • Instâncias de roteamento não padrão — a partir do Junos OS Release 19.3R1, os scripts Python em dispositivos suportados podem usar a função de extensão set_routing_instance() para se conectar a um dispositivo remoto por meio de uma instância de roteamento sem falhas.

  • Módulos Python adicionais — Para obter informações sobre os módulos que estão disponíveis para scripts Python em dispositivos que executam o Junos OS, consulte a visão geral dos módulos Python em dispositivos que executam o Junos OS.

Para evitar a execução do código Python não autorizado em dispositivos que executam o Junos OS, scripts Python não assinados devem atender a determinados requisitos antes que você possa executar o script em um dispositivo. Para obter informações detalhadas sobre os requisitos para a execução de scripts de automação Python em dispositivos que executam o Junos OS, consulte requisitos para executar scripts de automação Python em dispositivos Junos.

Para executar scripts Python não assinados usando Python 2.7 ou Python 3, você deve configurar a declaração ou language python3 a language python declaração, respectivamente, no nível de [edit system scripts] hierarquia. Se você configurar a language python3 declaração, o dispositivo usa o Python 3 para executar scripts que oferecem suporte a esta versão Python, e ele usa o Python 2.7 para executar scripts que não oferecem suporte ao Python 3 no lançamento do Junos OS, conforme observado na Tabela 1.

Para scripts JET, você deve configurar a versão da declaração que corresponde à versão Python que o script oferece suporte. Por exemplo, se você configurar a language python3 declaração para um script JET que só oferece suporte ao Python 2.7, você receberá um erro no tempo de execução quando executar o script.

Entradas de script Python para scripts de Confirmação, Eventos, Op e SNMP

Os dispositivos que executam o Junos OS que oferecem suporte a scripts de automação Python incluem os seguintes módulos, que você pode importar em scripts de confirmação, eventos, operações e SNMP:

Tabela 2: objetos do módulo Junos

Objeto Python

Tipo

Tipo de script

Descrição

Equivalente a XSLT/SLAX

Junos_Context

Dicionário

Cometer

Evento

Op

Informações específicas do dispositivo sobre o ambiente de execução de script, como o nome de host do dispositivo, o tipo de script e o usuário que executa o script.

commit-script-input/junos-context

contexto de script de eventos/junos

op-script-input/junos-context

Junos_Configuration

_Element lxml.etree

Cometer

Configuração de candidato pós-herança no formato Junos XML.

entrada/configuração de script de confirmação

Junos_Trigger_Event

_Element lxml.etree

Evento

Detalhes do evento que acionou a política de eventos correspondente.

evento-script-input/trigger-event

Junos_Received_Events

_Element lxml.etree

Evento

Detalhes de eventos correlacionados que ocorreram antes do evento de gatilho.

evento-script-entrada/eventos recebidos

Junos_Remote_Execution_Details

Função geradora que produz uma sequência de dispositivos remotos.

Evento

Detalhes de conexão para um host local ou remoto configurado para um script de eventos no nível de [edit event-options event-script file filename remote-execution] hierarquia.

detalhes de entrada de script de eventos/execução remota

Para obter informações detalhadas sobre as diferentes entradas de script e como importá-las e usá-las em scripts de automação, veja:

Recursos de script Python

A Tabela 3 oferece recursos para ajudar você a criar e executar scripts Python em dispositivos que executam o Junos OS. A Tabela 4 oferece recursos para cada um dos diferentes tipos de scripts.

Tabela 3: Recursos gerais

Recurso

Documentação

Requisitos de execução de script Python

Requisitos para executar scripts de automação Python em dispositivos Junos

Módulos Python em dispositivos que executam o Junos OS

Visão geral dos módulos Python em dispositivos que executam o Junos OS

Suporte para IPv6 em scripts Python

Suporte para iPv6 em scripts de automação Python

Documentação do Junos PyEZ

Junos PyEZ

Documentação da linguagem de programação Python

https://www.python.org/

Tabela 4: recursos por tipo de script

Tipo de script

Documentação

Junos OS commit, event, op e SNMP Scripts

Guia de usuário de scripts de automação do Junos OS

Scripts do Juniper Extension Toolkit (JET)

Documentação do Kit de Ferramentas de Extensão da Juniper

Scripts de ação e tradução yang

Guia de desenvolvedor de protocolos de gerenciamento DO NETCONF XML