Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Crie RPCs personalizados em YANG para dispositivos que executam o Junos OS

A Juniper Networks fornece módulos YANG que definem as chamadas de procedimento remoto (RPCs) para os comandos operacionais do Junos OS. A partir do Junos OS Release 16.1R3, você também pode criar modelos de dados YANG que definem RPCs personalizados para dispositivos suportados que executam o Junos OS. A criação de RPCs personalizados permite definir com precisão os parâmetros e operações de entrada e os campos de saída e a formatação para suas tarefas operacionais específicas nesses dispositivos. Quando você estende a hierarquia de comandos operacionais com um RPC YANG personalizado, você também deve fornecer um script de ação que sirva como o manipulador para o RPC. A definição de RPC faz referência ao script de ação, que é invocado quando você executa o RPC.

Este tópico descreve as etapas gerais para a criação de um módulo YANG que define um RPC personalizado para dispositivos que executam o Junos OS. Para obter informações sobre a criação de um script de ação RPC e personalização da saída de CLI do RPC, consulte Criar scripts de ação para RPCs YANG em dispositivos que executam o Junos OS e entender as extensões do Junos OS YANG para formatar a saída de RPC.

Esta seção apresenta um modelo genérico para um módulo YANG que define um RPC para dispositivos que executam o Junos OS. O modelo é seguido por uma explicação detalhada das diferentes seções e declarações do modelo.

Os RPCs são definidos dentro de módulos. O nome do módulo deve ser descritivo e indicar a finalidade geral dos RPCs incluídos nesse módulo, e o espaço de nome do módulo deve ser único.

Nota:

De acordo com RFC 6020, YANG - Uma linguagem de modelagem de dados para o protocolo de configuração de rede (NETCONF), o nome do módulo e o nome base do arquivo em que o módulo reside devem ser idênticos. Por exemplo, se o nome do módulo for get-if-info, o nome de arquivo do módulo deve ser get-if-info.yang.

O módulo deve importar o módulo de extensões Junos OS DDL e definir um prefixo. O módulo de extensões inclui extensões YANG que são necessárias na definição de RPCs executados em dispositivos que executam o Junos OS.

Nota:

A partir do Junos OS Release 17.4R1, os módulos Junos OS YANG usam uma nova convenção de nomeação para nome, nome de arquivo e namespace do módulo.

Se algum dos RPCs no módulo renderizar a saída ASCII formatada, o módulo deve importar o módulo de extensões ODL Junos OS e definir um prefixo. O módulo de extensões ODL define extensões YANG que você usa para especificar com precisão como renderizar a saída quando você executa o comando operacional para esse RPC no CLI ou quando solicita a saída de RPC no formato de texto.

Inclua a organização responsável pelo módulo, bem como uma descrição do módulo.

Dentro do módulo, você pode definir um ou mais RPCs, cada um com um nome único. O nome RPC é usado para executar remotamente o RPC e, portanto, deve indicar claramente a finalidade do RPC. A finalidade do RPC pode ser ainda mais esclarecida na description declaração. Se você também definir um comando CLI para o RPC, a CLI exibirá a descrição do RPC na ajuda sensível ao contexto para essa lista de comandos.

Dentro da definição de RPC, definir o command, action-executee script as declarações, que são declarações de extensão Junos OS DDL. A command declaração define o comando operacional que você usa para executar o RPC no Junos OS CLI. Para executar o RPC remotamente, use o nome RPC para a tag de solicitação.

A action-execute declaração e script o subestadual devem ser definidos para cada RPC. O script subestimação define o nome do script de ação que é invocado quando você executa o RPC. Você deve definir um único script de ação para cada RPC.

Nota:

A partir do Junos OS Release 17.3, a action-execute declaração é um subestadual para command. Em versões anteriores, as declarações e command declarações action-execute são colocadas no mesmo nível, e a command declaração é opcional.

  • No Junos OS Release 17.3 e posterior, defina a command declaração e seus subestações.

  • No Junos OS Release 17.2 e anterior, defina as declarações e script as action-execute declarações e defina opcionalmente a command declaração.

Nota:

Você deve adicionar o módulo YANG e o script de ação ao dispositivo como parte de um pacote YANG novo ou existente, emitindo o request system yang add ou request system yang update comando. Assim, você só precisa fornecer o nome e não o caminho do script de ação para a junos:script declaração.

Nota:

Se seu script de ação for escrito no Python, você deve permitir que o dispositivo execute scripts Python não assinados configurando a language python ou language python3 declaração sob o nível de [edit system scripts] hierarquia em cada dispositivo onde o script será executado.

Os parâmetros de entrada para a operação de RPC são definidos dentro da declaração opcional input . Quando você executa o RPC, o Junos OS invoca o script de ação do RPC e passa todos os parâmetros de entrada para o script.

Nota:

Começando no Junos OS Release 19.2R1, os RPCs YANG personalizados oferecem suporte a parâmetros de entrada do tipo empty ao executar o comando do RPC no Junos OS CLI. Em versões anteriores, parâmetros de entrada do tipo empty só são suportados ao executar o RPC em uma sessão de protocolo NETCONF ou Junos XML.

A declaração opcional output inclui os parâmetros de saída para a operação de RPC. A output declaração pode incluir um contêiner raiz de alto nível. É uma boa prática correlacionar o nome do contêiner raiz e o nome RPC. Por exemplo, se o nome RPC for get-xyz-information, o nome do contêiner pode ser xyz-information. Subestações à output declaração definem nós sob o nó do output RPC. Na saída XML, isso se traduziria em elementos XML sob o <rpc-reply> elemento.

Dentro do contêiner raiz, você pode incluir leaf e container declarações. As declarações do Leaf descrevem os dados incluídos na saída de RPC para esse contêiner.

Por padrão, o formato para saída de RPC é XML. Você também pode definir a saída ASCII formatada que é exibida quando você executa o comando operacional para esse RPC no CLI ou quando solicita a saída de RPC no formato de texto.

Nota:

A partir do Junos OS Release 17.3, a formatação de CLI para um RPC personalizado é definida dentro da declaração de junos-odl:format extensão. Em versões anteriores, a formatação de CLI é definida usando um contêiner que inclui a junos-odl:cli-format declaração.

  • A partir do Junos OS Release 17.3, você define a formatação de CLI definindo uma junos-odl:format declaração, que é uma declaração de extensão do Junos OS ODL.

  • Antes do Junos OS Release 17.3, você define a formatação de CLI para um determinado contêiner dentro de um contêiner infantil que inclui a junos-odl:cli-format declaração.

Dentro da declaração ou contêiner que define a formatação de CLI, você pode personalizar a saída de CLI do RPC usando declarações definidas no módulo de extensões ODL do Junos OS. Para obter mais informações sobre a renderização da saída ASCII formatada, consulte Personale YANG RPC Output on Devices Running Junos OS. Você também pode estipular quando os dados em um determinado contêiner são emitidos na saída CLI de um RPC. Para obter informações sobre a construção de diferentes níveis de saída para o mesmo RPC, consulte Definir diferentes níveis de saída em RPCs YANG personalizados para dispositivos que executam o Junos OS.

Para usar o RPC em um dispositivo que executa o Junos OS:

  • Baixe o módulo e o script de ação para o dispositivo
  • Adicione os arquivos a um pacote YANG novo ou existente, emitindo o request system yang add comando operacional ou request system yang update
  • Execute o RPC
    • Para executar o RPC na CLI, emita o comando definido pela junos:command declaração.
    • Para executar o RPC remotamente, use o nome RPC em uma operação de solicitação de RPC.
Nota:

A partir do Junos OS Release 17.3R1, quando você carrega modelos de dados YANG personalizados no dispositivo, você não precisa carregar explicitamente nenhum módulo de extensão Junos OS necessário. Em versões anteriores, você deve carregar os módulos de extensão do Junos OS para quaisquer pacotes que usem os módulos.

Quando você executa o RPC no CLI emitindo o comando definido pela junos:command declaração, o dispositivo exibe a saída de RPC no formato CLI definido pelo RPC. Se o RPC não definir a formatação de CLI, por padrão, nenhuma saída será exibida para esse RPC na CLI. No entanto, você ainda pode exibir a saída XML para esse RPC na CLI, anexando o | display xml filtro ao comando.

Para obter mais informações sobre OS RPCs YANG, consulte RFC 6020, YANG - Uma linguagem de modelagem de dados para o protocolo de configuração de rede (NETCONF) e RFCs relacionadas.

Tabela de histórico de lançamento
Lançamento
Descrição
19.2R1
Começando no Junos OS Release 19.2R1, os RPCs YANG personalizados oferecem suporte a parâmetros de entrada do tipo empty ao executar o comando do RPC no Junos OS CLI.
17.3R1
A partir do Junos OS Release 17.3, a action-execute declaração é um subestadual para command.
17.3R1
A partir do Junos OS Release 17.3, a formatação de CLI para um RPC personalizado é definida dentro da declaração de junos-odl:format extensão.
17.3R1
A partir do Junos OS Release 17.3R1, quando você carrega modelos de dados YANG personalizados no dispositivo, você não precisa carregar explicitamente nenhum módulo de extensão Junos OS necessário.