Caldeira necessária para scripts de operações
RESUMO Defina a plataforma de caldeiras para scripts de operações.
Os scripts op do Junos OS podem ser escritos em Extensible Stylesheet Language Transformations (XSLT), Stylesheet Language Alternative syntaX (SLAX) ou Python. Os scripts op devem incluir a caldeira necessária para essa linguagem de script para funcionalidades básicas de script, bem como qualquer funcionalidade opcional usada dentro do script, como as funções de extensão do Junos OS e modelos nomeados. Este tópico fornece uma plataforma padrão que pode ser usada em scripts op XSLT, SLAX e Python.
Os scripts de op SLAX e XSLT são baseados em elementos de tag de protocolo Junos XML e Junos XML. Como todos os elementos XML, os suportes de ângulo incluem o nome de um elemento de tag de protocolo Junos XML ou Junos XML em suas tags de abertura e fechamento. Esta é uma convenção XML, e os parênteses são uma parte necessária do nome completo do elemento tag. Eles não devem ser confusos com os suportes de ângulo usados na documentação para indicar partes opcionais das cordas de comando CLI do Junos OS.
Caldeira XSLT para scripts de op
A caldeira de script de op XSLT é a seguinte:
1 <?xml version="1.0" standalone="yes"?> 2 <xsl:stylesheet version="1.0" 3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 4 xmlns:junos="http://xml.juniper.net/junos/*/junos" 5 xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm" 6 xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0"> 7 <xsl:import href="../import/junos.xsl"/> 8 <xsl:template match="/"> 9 <op-script-results> <!-- ... insert your code here ... --> 10 </op-script-results> 11 </xsl:template> <!-- ... insert additional template definitions here ... --> 12 </xsl:stylesheet>
A linha 1 é a instrução de processamento de linguagem de marcabilidade extensível (XML), que marca este arquivo como XML e especifica a versão do XML como 1.0. O XML PI, se presente, deve ser o primeiro símbolo sem comentários no arquivo de script.
1 <?xml version="1.0"?>
A Linha 2 abre a folha de estilo e especifica a versão XSLT como 1.0.
2 <xsl:stylesheet version="1.0"
As linhas 3 a 6 listam todos os mapeamentos de namespace comumente usados em scripts de operação. Nem todos esses prefixos são usados neste exemplo, mas não é um erro listar mapeamentos de namespace que não são mencionados. Listar todos os mapeamentos de namespace evita erros se os mapeamentos forem usados em versões posteriores do script.
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 4 xmlns:junos="http://xml.juniper.net/junos/*/junos" 5 xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm" 6 xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0">
A Linha 7 é uma declaração de importação do XSLT. Ele carrega os modelos e variáveis do arquivo mencionado como .. /import/junos.xsl, que é fornecido como parte do Junos OS (no arquivo /usr/libdata/cscript/import/junos.xsl). O arquivo junos.xsl contém um conjunto de templates nomeados que você pode chamar em seus scripts. Esses modelos nomeados são discutidos na compreensão de modelos nomeados nos scripts de automação do Junos OS .
7 <xsl:import href="../import/junos.xsl"/>
A Linha 8 define um modelo que corresponda ao </>
elemento. O <xsl:template match="/">
elemento é o elemento raiz e representa o nível superior da hierarquia XML. Todas as expressões de XPath no script devem começar no nível superior. Isso permite que o script acesse todas as possíveis chamadas de procedimento remoto de protocolo Junos XML e Junos XML (RPCs). Para obter mais informações, veja a visão geral do XPath.
8 <xsl:template match="/">
Após o <xsl:template match="/">
elemento de tag, as etiquetas e </op-script-results>
as <op-script-results>
etiquetas de contêiner devem ser as etiquetas infantis de alto nível, conforme mostrado nas Linhas 9 e 10.
9 <op-script-results> <!-- ... insert your code here ... --> 10 </op-script-results>
A Linha 11 fecha o modelo.
11 </xsl:template>
Entre a Linha 11 e a Linha 12, você pode definir modelos XSLT adicionais que são chamados de dentro do <xsl:template match="/">
modelo.
A linha 12 fecha a folha de estilo e o script de operação.
12 </xsl:stylesheet>
Caldeira SLAX para scripts de op
A caldeira de script op SLAX é a seguinte:
version 1.2; ns junos = "http://xml.juniper.net/junos/*/junos"; ns xnm = "http://xml.juniper.net/xnm/1.1/xnm"; ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0"; import "../import/junos.xsl"; match / { <op-script-results> { /* * Insert your code here */ } }
Python Boilerplate para scripts de op
Os scripts op de Python não têm uma caldeira necessária, mas precisam importar quaisquer objetos que sejam usados no script. Os scripts op do Python podem importar o seguinte:
Junos_Context
que contém informações sobre o ambiente de execução de scripts.jcs
biblioteca — permite que o script use funções de extensão do Junos OS e funcionalidade de modelo indicada pelo Junos OS no script.jnpr.junos
módulo e aulas — permite que o script use o Junos PyEZ.
Por exemplo:
from junos import Junos_Context from jnpr.junos import Device import jcs if __name__ == '__main__':
Os scripts de automação de Python não precisam incluir uma linha de diretiva de intérprete (#!/usr/bin/env python
) no início do script. No entanto, o programa ainda será executado corretamente se um estiver presente.