Crie uma macro de script de compromisso para ler a sintaxe personalizada e gerar declarações de configuração relacionadas
As macros de script de commit permitem que você expanda a sintaxe de configuração personalizada em declarações de configuração padrão do Junos OS. Por si só, a sintaxe personalizada em uma declaração apply-macro
não tem impacto operacional no dispositivo. Para dar sentido à sua sintaxe, deve haver um script de confirmação correspondente que use a sintaxe como dados para gerar declarações relacionadas do Junos OS.
Para escrever tal script:
- No início do script, inclua a caldeira de script de confirmação apropriada da caldeira necessária para scripts de confirmação. É reproduzido aqui por conveniência:
Caldeira
<?xml version="1.0" standalone="yes"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:junos="http://xml.juniper.net/junos/*/junos" xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm" xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0"> <xsl:import href="../import/junos.xsl"/> <xsl:template match="configuration"> <!-- ... insert your code here ... --> </xsl:template> </xsl:stylesheet>
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 configuration { /* * insert your code here */ }
from junos import Junos_Configuration import jcs if __name__ == '__main__': # insert your code here
- Na posição indicada pelo comentário "insert your code here", inclua instruções de programação que inspecionam a configuração para a
apply-macro
declaração em um nível de hierarquia especificado e alteram a configuração para incluir a sintaxe padrão do Junos OS.Por exemplo, que usa ambos os tipos de instruções e inclui uma análise linha a linha da sintaxe XSLT, veja Exemplo: Criação de sintaxe de configuração personalizada com macros de script de commit.
- Reserve o script com um nome significativo.
- Copie o script para o /var/db/scripts/commit directory no disco rígido ou no /config/scripts/commit directory no flash drive.
Para obter informações sobre como definir o local de armazenamento para scripts de confirmação, consulte Store e Habilite scripts de automação junos e scripts de loja em memória flash.
- Habilite o script configurando a
file filename
declaração no nível de[edit system scripts commit]
hierarquia.[edit system scripts] user@host# set commit file filename
- Se o script gerar alterações transitórias, configure a
allow-transients
declaração.Configure a declaração no nível de
[edit system scripts commit]
hierarquia para permitir que todos os scripts de confirmação façam mudanças transitórias.[edit system scripts] user@host# set commit allow-transients
Como alternativa, em dispositivos e versões suportados, configure a declaração no nível de
[edit system scripts commit file filename]
hierarquia para permitir apenas que o script individual faça mudanças transitórias.[edit system scripts] user@host# set commit file filename allow-transients
- Se o script estiver escrito em Python, habilite a execução de scripts Python não assinados.
[edit system scripts] user@host# set language (python | python3)
- Confirmar a configuração.
[edit system scripts] user@host# commit and-quit
Se todos os scripts de confirmação forem executados sem erros, quaisquer alterações persistentes serão carregadas na configuração do candidato e quaisquer alterações transitórias serão carregadas na configuração de checkout, mas não na configuração do candidato. O processo de confirmação continua validando a configuração e propagando mudanças nos processos afetados no dispositivo que executa o Junos OS.