Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Use Ansible para recuperar ou comparar as configurações do Junos OS

RESUMO Use os módulos Ansible da Juniper Networks para recuperar ou comparar configurações em dispositivos Junos.

A Juniper Networks oferece módulos Ansible que permitem que você gerencie a configuração em dispositivos Junos. A Tabela 1 descreve os módulos disponíveis, que permitem recuperar ou comparar as configurações do Junos OS.

Tabela 1: Módulos para recuperar ou comparar configurações

Conjunto de conteúdo

Nome do módulo

juniper.device Coleção

config

Juniper.junos Papel

juniper_junos_config

Nota:

Juniper.junos A partir do lançamento 2.0.0, o juniper_junos_config módulo combina e substitui a funcionalidade dojunos_commit, junos_get_configjunos_install_confige junos_rollback módulos.

Você pode usar os módulos para solicitar a configuração completa ou partes selecionadas da configuração tanto para a configuração nativa do Junos OS quanto para dados de configuração correspondentes a modelos de dados YANG de terceiros que foram adicionados ao dispositivo. Para recuperar a configuração de um dispositivo Junos, execute o config ou juniper_junos_config módulo com o retrieve parâmetro. A resposta do módulo inclui a configuração no formato de texto nas config teclas e config_lines nas teclas, a menos que a opção return_output esteja definida para false. Você também pode comparar a configuração ativa com uma configuração previamente comprometida.

As seções a seguir discutem como usar os módulos para recuperar ou comparar as configurações do Junos OS.

Como especificar o banco de dados de origem para os dados de configuração

Quando você usa o config ou juniper_junos_config módulo para recuperar a configuração, você deve incluir o retrieve parâmetro na lista de argumentos do módulo e especificar o banco de dados de configuração do qual recuperar os dados. Você pode recuperar dados do banco de dados de configuração comprometido ou do banco de dados de configuração do candidato configurando retrieve para 'committed' ou 'candidate', respectivamente.

Banco de dados de configuração comprometido

O manual a seguir recupera a configuração comprometida completa no formato de texto para cada dispositivo no grupo de inventário:

Banco de dados de configuração de candidatos

O manual a seguir recupera a configuração completa do candidato no formato de texto para cada dispositivo no grupo de inventário. O módulo retorna um erro se o banco de dados estiver bloqueado ou modificado.

Como especificar o escopo dos dados de configuração para retornar

Além de recuperar a configuração completa do Junos OS, você pode usar o e juniper_junos_config os config módulos para recuperar partes específicas da configuração, incluindo o parâmetro do filter módulo. O filter valor do parâmetro é uma string que contém o filtro sub-árvore que seleciona as declarações de configuração para retornar. O filtro subtree devolve os dados de configuração que correspondem aos critérios de seleção. Quando várias hierarquias são solicitadas, o valor deve filter representar todos os níveis da hierarquia de configuração começando na raiz (representado pelo <configuration> elemento) até cada elemento a ser exibido.

O manual a seguir recupera e imprime a configuração nos [edit interfaces] níveis de hierarquia e [edit protocols] hierarquia no banco de dados de configuração comprometido para cada dispositivo:

O manual a seguir recupera e imprime a configuração para a interface ge-1/0/1:

O manual a seguir recupera e imprime a configuração comprometida no nível de [edit system services] hierarquia:

Como especificar o formato dos dados de configuração para retornar

Quando você usa o config ou juniper_junos_config módulo para recuperar a configuração, o módulo invoca a operação de protocolo <get-configuration> Junos XML, que pode devolver dados de configuração do Junos OS como texto formatado, elementos Junos XML, comandos Junos OS set ou Notação de objetos JavaScript (JSON). Por padrão, o módulo retorna dados de configuração como texto formatado, que usa novas linhas, guias e outros espaços brancos, aparelhos e parênteses quadrados para indicar as relações hierárquicas entre as declarações.

Para especificar o formato em que devolver os dados de configuração, defina o format parâmetro igual ao formato desejado. Para solicitar explicitamente o formato de texto ou solicitar elementos Junos XML, comandos do Junos OS set ou formato JSON, definir o format valor para 'text', 'xml', 'set'ou 'json', respectivamente. A config e config_lines as chaves contêm a configuração no formato solicitado. Se você solicitar o formato Junos XML ou JSON, a config_parsed chave contém a configuração equivalente no formato JSON.

O manual a seguir recupera a configuração completa e comprometida para cada dispositivo no grupo de inventário no formato XML:

Como recuperar dados de configuração para modelos de dados YANG de terceiros

Você pode carregar módulos YANG padronizados ou personalizados em dispositivos Junos para adicionar modelos de dados que não são suportados nativamente pelo Junos OS, mas podem ser suportados pela tradução. Você configura modelos de dados não nativos na configuração do candidato usando a sintaxe definida para esses modelos. Quando você confirma a configuração, os scripts de tradução do modelo de dados traduzem esses dados e confirmam a configuração correspondente do Junos OS como uma mudança transitória na configuração de checkout.

O candidato e as configurações ativas contêm os dados de configuração para modelos de dados YANG não nativos na sintaxe definida por esses modelos. Você pode usar o config módulo ou juniper_junos_config recuperar dados de configuração para modelos padrão (IETF, OpenConfig) e yang personalizados, além de recuperar a configuração nativa do Junos OS, incluindo os argumentos apropriados do módulo. Por padrão, os dados de configuração dos modelos de dados YANG de terceiros não estão incluídos na resposta do módulo.

Para recuperar dados de configuração definidos por um modelo de dados YANG não nativo, além de recuperar a configuração do Junos OS, executar o módulo com o model parâmetro e incluir o namespace parâmetro quando apropriado. O model argumento leva a um dos seguintes valores:

  • custom— Recuperar dados de configuração definidos por modelos de dados YANG personalizados. Você deve incluir o namespace argumento ao recuperar dados para modelos de dados YANG personalizados.

  • ietf— Recuperar dados de configuração definidos pelos modelos de dados YANG do IETF.

  • openconfig— Recuperar dados de configuração definidos pelos modelos de dados do OpenConfig YANG.

  • True— Recuperar todos os dados de configuração, incluindo a configuração completa do Junos OS e dados de qualquer modelo de dados YANG.

Se você especificar o valor ou openconfig o ietf valor para o model argumento, o módulo usa automaticamente o namespace apropriado. Se você recuperar dados para um modelo de dados YANG personalizado usandomodel: "custom", você também deve incluir o namespace argumento com o namespace correspondente.

Se você incluir o model argumento com o valor custom, ietfou openconfig também incluir o filter argumento para devolver uma subtree XML específica, o Junos OS só retorna a hierarquia correspondente do modelo de dados não nativos. Se a configuração do Junos OS contém uma hierarquia de mesmo nome, por exemplo, "interfaces", ela não está incluída na resposta. A opção filter não é suportada ao usar model: "True".

Quando você usa o config módulo ou juniper_junos_config recupera dados de configuração não nativos, você só pode especificar o formato dos dados devolvidos se você também incluir o filter parâmetro. Se você omitir o filter parâmetro, você deve especificar format: "xml".

O manual a seguir recupera a hierarquia de configuração do OpenConfig interfaces a partir da configuração comprometida. Se você omitir o filter argumento, o RPC retorna as configurações completas do Junos OS e OpenConfig.

A tarefa a seguir recupera a l2vpn hierarquia de configuração da configuração comprometida para um modelo de dados YANG personalizado com o namespace determinado:

A tarefa a seguir recupera a configuração completa comprometida do Junos OS, bem como os dados de configuração para outros modelos de dados YANG que foram adicionados ao dispositivo:

Como especificar opções que não têm um argumento de módulo equivalente

Quando você usa o config módulo ou juniper_junos_config recupera a configuração, o módulo invoca a operação de protocolo <get-configuration> Junos XML. Os módulos oferecem suporte a argumentos explícitos para muitos dos <get-configuration> atributos, por exemplo, o format atributo. Os módulos também suportam o options argumento, que permite incluir quaisquer atributos adicionais <get-configuration> que não tenham um argumento de módulo equivalente. O options argumento requer um pouco de pares de chave/valor de quaisquer atributos apoiados pela <get-configuration> operação.

Para obter a lista completa de atributos suportados pela operação de protocolo <get-configuration> Junos XML, veja https://www.juniper.net/documentation/en_US/junos/topics/reference/tag-summary/junos-xml-protocol-get-configuration.html.

Por exemplo, os módulos recuperam dados da configuração pré-herança, na qual as etiquetas e <interface-range> as <groups><apply-groups><apply-groups-except>etiquetas são elementos separados na saída de configuração. Para recuperar dados da configuração pós-herança, que exibe declarações herdadas de grupos definidos pelo usuário e varia conforme crianças das declarações herdadas, você pode incluir o options argumento com inherit: "inherit".

O manual a seguir recupera os dados de configuração no [edit system services] nível de hierarquia a partir da configuração comprometida pós-herança. Neste caso, se a configuração também contiver declarações configuradas no nível de [edit groups global system services] hierarquia, essas declarações serão herdadas na [edit system services] configuração pós-herança e devolvidas nos dados de configuração recuperados.

Como salvar dados de configuração em um arquivo

Quando você usa o config ou juniper_junos_config módulo para recuperar a configuração, você pode salvar os dados de configuração devolvidos em um arquivo no nó de controle Ansible local, incluindo o módulo dest_dir ou dest o parâmetro. A opção dest_dir apenas especifica um diretório, e a opção dest pode especificar um caminho e um nome de arquivo. Se um arquivo de saída já existir com o nome-alvo, o módulo substituirá o arquivo.

Para especificar o diretório no nó de controle ansible local onde as configurações recuperadas são salvas, inclua o dest_dir argumento e defina o caminho para o diretório alvo. A configuração para cada dispositivo é armazenada em um arquivo separado chamado hostname.config.

O manual a seguir recupera a configuração comprometida de todos os dispositivos do grupo de inventário e salva a configuração de cada dispositivo em um arquivo separado no diretório de configurações sob o diretório de playbook no nó de controle Ansible:

Para especificar o caminho e o nome do arquivo para os arquivos de saída, inclua o dest argumento e defina o caminho absoluto ou relativo do arquivo. Se você incluir o dest argumento, mas omitir o diretório, os arquivos serão salvos no playbook directory. Se você recuperar a configuração para vários dispositivos, o dest argumento deve incluir uma variável como {{ inventory_hostname }} diferenciar o nome de arquivo para cada dispositivo. Se você não diferenciar os nomes de arquivo, o arquivo de configuração para cada dispositivo substituirá o arquivo de configuração dos outros dispositivos.

O manual a seguir recupera a [edit system services] hierarquia do banco de dados de configuração comprometido em todos os dispositivos do grupo de inventário e economiza a configuração de cada dispositivo em um arquivo separado no diretório de playbook no nó de controle Ansible. Cada arquivo é identificado com exclusividade pelo nome de host do dispositivo.

Se você estiver economizando os dados de configuração em arquivos e não quiser duplicar os dados de configuração na resposta do módulo, você pode incluir return_output: false opcionalmente na lista de argumentos do módulo. Configuração return_output para false fazer com que o módulo omite as chaves e config_parsed as configconfig_lineschaves em sua resposta. Fazer isso pode ser necessário se os dispositivos devolverem uma quantidade significativa de dados de configuração.

Como comparar a configuração ativa com uma configuração anterior

Os config módulos e juniper_junos_config os módulos permitem comparar a configuração ativa com uma configuração ou configuração de reversão previamente comprometida. Para comparar a configuração ativa com uma configuração anterior, inclua os seguintes argumentos do módulo:

Por padrão, quando você inclui o rollback: id argumento, o módulo reverte a configuração, realiza uma verificação de confirmação e confirma as alterações. Você deve incluir o commit: false argumento para comparar apenas as configurações e evitar que o módulo carregamento e comenda a configuração de reversão. Incluir o check: false argumento impede a operação desnecessária de verificação de confirmação.

Os módulos devolvem as chaves e diff_lines os diff módulos, que contêm as diferenças de configuração entre a configuração ativa e anterior no formato diff ou patch.

  • diff— um princípio que contém uma única chave nomeada prepared e seu valor, que é uma única corda multi-linha que contém as diferenças.

    Nota:

    Juniper.junos A partir do lançamento 2.2.0, a diff chave retorna um rigor em vez de uma corda.

  • diff_lines— lista de strings de linha única que contêm as diferenças..

Para salvar as diferenças em um arquivo no nó de controle ansible local, inclua o diffs_file argumento e defina o caminho absoluto ou relativo do arquivo de saída. Se você incluir o diffs_file argumento, mas omitir o diretório, os arquivos serão salvos no playbook directory. Se você comparar as configurações em vários dispositivos, o diffs_file argumento deve incluir uma variável como {{ inventory_hostname }} diferenciar o nome do arquivo para cada dispositivo. Se você não diferenciar os nomes de arquivo, o arquivo de saída para cada dispositivo substituirá o arquivo de saída dos outros dispositivos.

O manual a seguir solicita a ID de reversão de uma configuração previamente comprometida, compara a configuração comprometida com a configuração de reversão especificada, economiza a comparação com um arquivo de nome exclusivo e também imprime a resposta à saída padrão:

Tabela de histórico de lançamentos
Lançamento
Descrição
2.2.0
Juniper.junos A partir do lançamento 2.2.0, a diff chave retorna um rigor em vez de uma corda.
2.0.0
Juniper.junos A partir do lançamento 2.0.0, o juniper_junos_config módulo combina e substitui a funcionalidade do junos_commit, junos_get_config junos_install_confige junos_rollback módulos.