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 um módulo Ansible que permite que você gerencie a configuração em dispositivos Junos. A Tabela 1 descreve o módulo disponível, que você pode usar para recuperar ou comparar as configurações do dispositivo Junos.

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

Conjunto de conteúdo

Nome do módulo

juniper.device coleção

config

Você pode usar o juniper.device.config módulo 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 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 o módulo para recuperar ou comparar configurações.

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

Ao usar o juniper.device.config módulo para recuperar a configuração, você deve incluir o retrieve parâmetro na lista de argumentos do módulo. O retrieve parâmetro especifica o banco de dados de configuração a partir do qual recuperar os dados. Você pode definir retrieve os seguintes valores para devolver dados de configuração do respectivo banco de dados:

  • retrieve: 'candidate'— Recuperar dados da configuração do candidato.

  • retrieve: 'committed'— Recuperar dados da configuração comprometida.

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 recuperar partes específicas da configuração, incluindo o config 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. Se você solicitar várias hierarquias, 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 juniper.device.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 em diferentes formatos. Por padrão, o módulo retorna dados de configuração como texto formatado. O formato de texto 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 config parâmetro do format módulo igual ao formato desejado. Os valores aceitáveis incluem:

  • 'json'— Notação de objetos JavaScript (JSON)

  • 'set'— comandos do Junos OS set

  • 'text'— Texto em formato (padrão)

  • 'xml'— Elementos do Junos XML

Na saída de manual, a e config_lines as config 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 juniper.device.config módulo para 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. 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 o model argumento especificar ietf ou openconfigo módulo usar automaticamente o namespace apropriado. Se você especificar model: "custom" para recuperar dados para um modelo de dados YANG personalizado, 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 para recuperar 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 juniper.device.config módulo para recuperar a configuração, o módulo invoca a operação de protocolo <get-configuration> Junos XML. O módulo oferece suporte a argumentos explícitos para muitos dos <get-configuration> atributos, por exemplo, o format atributo. O módulo também oferece suporte ao 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, consulte < configuração deget>.

Por exemplo, o config módulo recupera 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

Ao usar o juniper.device.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. O manual economiza a configuração de cada dispositivo em um arquivo separado no diretório de configurações sob o diretório de playbook sobre o 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. O manual 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 o dispositivo devolver uma quantidade significativa de dados de configuração.

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

O juniper.device.config módulo permite 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.

O módulo devolve as chaves e o diff módulo diff_lines . As chaves 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.

  • 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. O manual então 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.