Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Exemplo: criação de sintaxe de configuração personalizada com macros de script commit

Uma configuração do Junos OS pode conter apply-macro declarações com sintaxe de configuração personalizada. Por si só, a apply-macro declaração não tem impacto operacional no dispositivo. O Commit script macros processa a sintaxe de configuração personalizada e a expande para declarações de configuração padrão do Junos OS, que são adicionadas como uma mudança persistente ou transitória. Este exemplo demonstra como usar macros de script de compromisso para inspecionar apply-macro declarações e gerar declarações de configuração do Junos OS.

Requisitos

Este exemplo usa os seguintes componentes de hardware e software:

  • Dispositivo que executa o Junos OS.

  • Junos OS Versão 16.1R3 ou versão posterior ao usar um script Python.

Visão geral e script de compromisso

A Tabela 1 mostra uma macro contendo sintaxe personalizada e a expansão correspondente à sintaxe padrão da interface de linha de comando (CLI) do Junos OS.

Tabela 1: Amostra da expansão do Junos OS CLI e do Junos

Sintaxe macro personalizada

Sintaxe CLI do Junos OS expandida

protocols {
    mpls {
        apply-macro blue-type-lsp {
            10.1.1.1;
            10.2.2.2;
            10.3.3.3;
            10.4.4.4;
            color blue;
            group-value 0;
        }
    }
}
protocols {
    mpls {
        admin-groups {
            blue 0;
        }
        label-switched-path blue-lsp-10.1.1.1 {
            to 10.1.1.1;
            admin-group include-any blue;
        }
        label-switched-path blue-lsp-10.2.2.2 {
            to 10.2.2.2;
            admin-group include-any blue;
        }
        label-switched-path blue-lsp-10.3.3.3 {
            to 10.3.3.3;
            admin-group include-any blue;
        }
        label-switched-path blue-lsp-10.4.4.4 {
            to 10.4.4.4;
            admin-group include-any blue;
        }
    }
}

Neste exemplo, o processo de gerenciamento do Junos OS (mgd) inspeciona a configuração, em busca de apply-macro declarações. Para cada apply-macro declaração com o color parâmetro incluído no nível de [edit protocols mpls] hierarquia, o script gera uma mudança transitória, usando os dados fornecidos na apply-macro declaração para expandir a macro para um grupo administrativo padrão do Junos OS para LSPs.

Para que este exemplo funcione, uma declaração apply-macro deve ser incluída no nível da [edit protocols mpls] hierarquia com um conjunto de endereços, um colore um group-value parâmetro. O script de compromisso converte cada endereço em uma configuração LSP, e o script converte o color parâmetro em um grupo administrativo.

A seguir estão as instruções de script de compromisso que expandem a macro na Tabela 1 e uma explicação linha por linha do script:

Sintaxe XSLT

As linhas 1 a 8 (e as Linhas 43 e 44) são a placa de serviço que você inclui em cada script de compromisso XSLT. Para brevidade, as Linhas 1 a 8 são omitidas aqui.

A Linha 9 atribui o nível de [edit protocols mpls] hierarquia a uma variável chamada mpls.

A Linha 10 seleciona cada apply-macro declaração no nível de [edit protocols mpls] hierarquia que contém o color parâmetro. A configuração da amostra na Tabela 1 contém apenas uma apply-macro declaração. Portanto, esta <xsl:for-each> instrução de programação entra em vigor apenas uma vez.

A Linha 11 atribui o valor do color parâmetro, neste caso blue, a uma variável chamada color.

A Linha 12 atribui o valor do group-value parâmetro, neste caso 0, a uma variável chamada group-value.

As linhas 13 a 15 geram uma mudança transitória no nível de [edit protocols mpls] hierarquia.

As linhas 16 a 23 adicionam a admin-groups declaração à configuração e atribuem o color valor da variável ao nome do grupo e o valor da group-value variável ao valor do grupo.

As declarações de configuração resultantes são as seguintes:

A Linha 24 seleciona o nome de cada parâmetro que não tem um valor atribuído a ele, que neste caso são os quatro endereços IP. Esta <xsl:for-each> instrução de programação usa a recursão através da macro e seleciona cada endereço IP por sua vez. Os color parâmetros e group-value os parâmetros têm um valor atribuído (blue e 0, respectivamente), para que essa linha não se aplique a eles.

A Linha 25 adiciona a label-switched-path declaração na configuração.

As linhas 26 a 28 atribuem o label-switched-path nome que concatena o valor da color variável, o texto-lsp, e o endereço IP atualmente selecionado pela Linha 24 (representado pelo " ." ).

A Linha 29 adiciona a to declaração à configuração e define seu valor para o endereço IP atualmente selecionado pela Linha 24.

As linhas 30 a 34 adicionam a admin-group include-any declaração à configuração e definem seu valor ao valor da color variável.

As declarações de configuração resultantes (para um passe) são as seguintes:

As linhas 35 a 42 são tags de fechamento.

Sintaxe SLAX

O script SLAX equivalente é:

Sintaxe Python

A sintaxe Python a seguir produz as alterações de configuração idênticas:

Para obter mais informações sobre este exemplo, veja exemplo: configure grupos administrativos para LSPs.

Configuração

Procedimento

Procedimento passo a passo

Baixar, habilitar e testar o script:

  1. Copie o script em um arquivo de texto, nomeie o arquivo lsp-admin.xsl, lsp-admin.slax ou lsp-admin.py conforme apropriado, e copie-o para o /var/db/scripts/commit directory no dispositivo.

    Nota:

    Os scripts Python não assinados devem ser de propriedade de um root ou de um usuário na classe de login do Junos OS super-user , e apenas o proprietário do arquivo pode ter permissão de gravação para o arquivo.

  2. Se o script for escrito em Python, habilite a execução de scripts Python não assinados.

    Nota:

    Configure a declaração para usar o language python3 Python 3 para executar scripts Python ou configure a declaração para usar Python language python 2.7 para executar scripts Python. Para obter mais informações, consulte a linguagem.

  3. Selecione as estrofes de configuração de teste a seguir e pressione Ctrl+c para copiá-las na prancheta. Se você estiver usando a versão SLAX ou Python do script, atualize o nome de arquivo no nível de [edit system scripts commit file] hierarquia.

  4. No modo de configuração, emita o load merge terminal comando para mesclar as estrofes na configuração do dispositivo.

    1. No prompt, cole o conteúdo da prancheta usando o mouse e o ícone da pasta.

    2. Press Enter.

    3. Pressione Ctrl+d.

  5. Confirmar a configuração.

Verificação

Verificando a execução do script

Propósito

Verifique se o script se comporta como esperado.

Ação

Para exibir as declarações de configuração criadas pelo script, emita o show protocols mpls | display commit-scripts comando.