Compare a configuração ativa ou de candidato com uma versão anterior usando o protocolo Junos XML
No Junos OS CLI, você usa o compare comando para comparar a configuração ativa ou de candidato com uma configuração previamente comprometida e exibir as diferenças. Você pode especificar a configuração de comparação fazendo referência ao identificador de revisão de configuração ou ao número de reversão.
Por exemplo, no modo operacional, você pode comparar a configuração ativa com uma configuração previamente comprometida usando os seguintes comandos:
show configuration | compare revision revision-idshow configuration | compare rollback rollback-number
Da mesma forma no modo de configuração, você pode comparar a configuração do candidato com uma configuração previamente comprometida usando os seguintes comandos:
show | compare revision revision-idshow | compare rollback rollback-number
Em uma sessão de protocolo Junos XML com um dispositivo que executa o Junos OS, para solicitar que o servidor exira as diferenças entre a configuração ativa ou candidata e uma configuração previamente comprometida (a configuração de comparação), um aplicativo do cliente usa a <get-configuration> operação com o compare atributo. O compare atributo aceita os seguintes valores, que indicam o método usado para fazer referência à configuração de comparação:
configuration-revision— Referencia a configuração de comparação por sua cadeia de identificador de revisão de configuração, que você define noconfiguration-revision="revision-id"atributo.rollback— Faça referência à configuração de comparação por seu índice de reversão, que você define norollback="rollback-number"atributo.
O compare atributo pode ser combinado com o database atributo para indicar se a configuração do candidato ou a configuração ativa são comparadas à configuração previamente comprometida. Para comparar a configuração ativa, especifique database="committed". Para comparar a configuração do candidato, especifique database="candidate" ou omite o database atributo.
Você define a configuração de comparação definindo o ou rollback atributo configuration-revision e especificando o identificador ou índice de reversão de configuração apropriado. Se você incluir o compare atributo, mas omitir o correspondente configuration-revision ou rollback atributo ou fornecer um identificador de revisão de configuração inválido, o servidor usa a configuração ativa como configuração de comparação. A configuração ativa corresponde à reversão número 0.
Por exemplo, para comparar a configuração do candidato com a configuração que tem o identificador de revisão de configuração, use a seguinte sintaxe:
<rpc>
<get-configuration compare="configuration-revision" configuration-revision="revision-id" format="text">
<!-- optional - configuration elements to compare -->
</get-configuration>
</rpc>
Da mesma forma, para comparar a configuração do candidato com a configuração que tem o determinado índice de reversão, use a seguinte sintaxe:
<rpc>
<get-configuration compare="rollback" rollback="[0-49]" format="text">
<!-- optional - configuration elements to compare -->
</get-configuration>
</rpc>
Para comparar a configuração ativa com uma configuração anterior, inclua o database="committed" atributo. Por exemplo:
<rpc>
<get-configuration database="committed" compare="configuration-revision" configuration-revision="re0-1605138555-328"/>
</rpc>
Você também pode especificar o escopo da comparação. Você pode comparar a configuração completa ou comparar um subconjunto da configuração. Para comparar um subconjunto da configuração, defina um filtro de sub-árvore que selecione os elementos para comparar, conforme mostrado no exemplo a seguir:
<rpc>
<get-configuration compare="configuration-revision" configuration-revision="re0-1605288042-335">
<configuration>
<system>
<scripts/>
</system>
</configuration>
</get-configuration>
</rpc>
Quando você compara a configuração do candidato com a configuração ativa, a operação retorna a compare saída XML. Para todas as outras comparações, ele devolve a saída como texto usando um formato de patch. A saída de texto está fechada nas <configuration-information> tags. <configuration-output> A saída usa as seguintes convenções para especificar as diferenças entre configurações:
As declarações que estão apenas na configuração ativa ou de candidato são prefixadas com um sinal plus (+).
As declarações que estão apenas no arquivo de comparação são prefixadas com um sinal de menos (-).
As declarações que não são alteradas são prefixadas com um único espaço em branco ( ).
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/20.4R1/junos"> <configuration-information> <configuration-output> [edit system scripts op] - file bgp-summary.py; + file bgp-neighbors.py; </configuration-output> </configuration-information> </rpc-reply>
Quando você compara a configuração do candidato com a configuração ativa, você pode exibir as diferenças no formato texto, XML ou JSON, incluindo o valor apropriado para o format atributo na solicitação. Você pode exibir as diferenças no formato XML a partir do Junos OS Release 15.1R1, e você pode exibir as diferenças no formato JSON a partir do Junos OS Release 16.1R1.
<rpc>
<get-configuration compare="rollback" rollback="0" format="xml"/>
</rpc>
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/16.1R1/junos">
<configuration>
<system>
<scripts operation="create">
<op>
<file>
<name>bgp.slax</name>
</file>
</op>
</scripts>
</system>
</configuration>
</rpc-reply>
<rpc>
<get-configuration compare="rollback" rollback="0" format="json"/>
</rpc>
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/16.1R1/junos">
<configuration-information>
<json-output>
{
"configuration" : {
"system" : {
"scripts" : {
"@" : {
"operation" : "create"
},
"op" : {
"file" : [
{
"name" : "bgp.slax"
}
]
}
}
}
}
}
</json-output>
</configuration-information>
</rpc-reply>
Começando no Junos OS Release 16.2R2, quando você compara o candidato e as configurações ativas e exibe as diferenças no formato XML ou JSON, o dispositivo omite a <configuration> tag na saída XML e omite o configuration objeto na saída JSON se a comparação não retornar diferenças ou se a comparação devolver diferenças apenas para dados de configuração não nativos, por exemplo, dados de configuração associados a um modelo de dados OpenConfig.