Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Use Ansible para recuperar fatos dos dispositivos Junos

A Juniper Networks oferece módulos Ansible que você pode usar para gerenciar dispositivos Junos e realizar tarefas operacionais e de configuração nos dispositivos. Os módulos não exigem Python no dispositivo gerenciado porque usam o Junos PyEZ e a API Junos XML sobre NETCONF para interface com o dispositivo. Portanto, quando você usa o Ansible para realizar operações em dispositivos Junos, você deve executar os módulos Ansible localmente no nó de controle. Como resultado, a Ansible está inadimplente em coletar fatos do nó de controle Ansible em vez do nó gerenciado.

A Juniper Networks fornece um módulo que você pode usar para reunir fatos do dispositivo, incluindo a configuração ativa, a partir de dispositivos Junos. A Tabela 1 descreve o módulo disponível. O módulo usa o sistema de coleta de fatos Junos PyEZ para recuperar os fatos do dispositivo. Para obter mais informações sobre o sistema de coleta de fatos Junos PyEZ e a lista completa de chaves de dicionário devolvidas, veja jnpr.junos.facts.

Tabela 1: Módulo para reunir fatos

Conjunto de conteúdo

Nome do módulo

juniper.device coleção

facts

O facts módulo devolve os fatos do dispositivo no níquete ansible_facts.junos . O módulo também permite que você economize os dados devolvidos em um arquivo no nó de controle ansível local. Para especificar o diretório no qual salvar as informações recuperadas, inclua o argumento do savedir módulo e defina o caminho para o diretório alvo. Quando você inclui o savedir argumento, o manual gera os seguintes arquivos para cada dispositivo, onde hostname está o valor do hostname fato recuperado do dispositivo, que pode ser diferente do nome de host passado para o módulo:

  • hostname-facts.json — Fatos do dispositivo no formato JSON

  • hostname-inventory.xml — Inventário de hardware do dispositivo em formato XML

Por exemplo, a playbook a seguir recupera os fatos do dispositivo para cada dispositivo no grupo de inventário e economiza os dados para cada dispositivo em arquivos separados no diretório de playbook no nó de controle Ansible. Como o manual executa o módulo localmente, a facts Ansible é padrão para coletar fatos do nó de controle. O manual inclui o gather_facts: no argumento para evitar que Ansible reúna fatos do nó de controle e, em vez disso, usa o juniper.device.facts módulo para recuperar os fatos do dispositivo gerenciado. Para autenticar com o dispositivo, o exemplo usa as chaves SSH existentes no local padrão e, portanto, não fornece credenciais explicitamente para o facts módulo no manual.

Por padrão, o facts módulo não retorna a configuração do dispositivo. Para devolver a configuração ativa para um dispositivo, além dos fatos do dispositivo, inclua a opção config_format e especifique o formato em que devolver a configuração. Valores de formato aceitáveis são'json', 'set''text' e'xml'. O formato solicitado deve ser suportado pela versão do Junos OS em execução no dispositivo.

Quando você inclui a opção config_format , o ansible_facts.junos níquete na resposta do módulo inclui a config chave com a configuração no formato especificado em uma única corda multi-linha. No entanto, mesmo que o manual inclua a opção savedir , os dados de configuração não estão escritos em um arquivo.

Ponta:

Para usar o Ansible para recuperar dados de configuração de um dispositivo Junos e salvar os dados em um arquivo, use o config módulo em vez do facts módulo. Para obter mais informações, consulte Use Ansible para recuperar ou comparar as configurações do Junos OS.

O manual do próximo exemplo executa as seguintes operações:

  • Recupera os fatos do dispositivo e a configuração ativa para cada dispositivo no grupo de inventário

  • Salva os fatos e o inventário de hardware para cada dispositivo em arquivos separados no diretório de playbook no nó de controle Ansible

  • Imprime a configuração de cada dispositivo à saída padrão