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.
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 |
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:
jcs
módulo — fornece acesso a um subconjunto das funções e modelos de extensão que estão disponíveis para scripts SLAX e XSLT.Para obter informações sobre funções e modelos de extensão do Junos OS, consulte Entender as funções de extensão nos scripts de automação do Junos OS e entender modelos nomeados em scripts de automação do Junos OS.
junos
módulo — contém asJunos
entradas de classe e script descritas na Tabela 2.
Objeto Python |
Tipo |
Tipo de script |
Descrição |
Equivalente a XSLT/SLAX |
---|---|---|---|---|
|
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 |
|
_Element lxml.etree |
Cometer |
Configuração de candidato pós-herança no formato Junos XML. |
entrada/configuração de script de confirmação |
|
_Element lxml.etree |
Evento |
Detalhes do evento que acionou a política de eventos correspondente. |
evento-script-input/trigger-event |
|
_Element lxml.etree |
Evento |
Detalhes de eventos correlacionados que ocorreram antes do evento de gatilho. |
evento-script-entrada/eventos recebidos |
|
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 |
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.
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 |
|
Documentação do Junos PyEZ |
|
Documentação da linguagem de programação Python |
Tipo de script |
Documentação |
---|---|
Junos OS commit, event, op e SNMP Scripts |
|
Scripts do Juniper Extension Toolkit (JET) |
|
Scripts de ação e tradução yang |
Guia de desenvolvedor de protocolos de gerenciamento DO NETCONF XML |