Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Conecte-se a dispositivos Junos usando o Ansible

Entenda como se conectar a dispositivos Junos ao usar o juniper.device conjunto de módulos na juniper.device coleção Ansible.

A Juniper Networks oferece módulos Ansible que você pode usar para gerenciar dispositivos que executam o Junos OS e dispositivos que executam o Junos OS Evolved. Os módulos da Juniper Networks são distribuídos por meio da juniper.device coleção. A juniper.device coleção inclui dois conjuntos de módulos:

Este documento discute como usar o juniper.device conjunto de módulos apenas para se conectar a dispositivos Junos usando diferentes protocolos e conexões Ansible. Para obter informações sobre como usar os junipernetworks.junos módulos para se conectar a dispositivos Junos, consulte Usar os módulos do Ansible juniper.device.junos_* para gerenciar dispositivos Junos.

Visão geral dos métodos de conexão

Os juniper.device módulos permitem que você se conecte a um dispositivo Junos usando SSH, telnet ou uma conexão de console serial. Você deve usar uma conexão de console serial quando seu terminal ou laptop estiver fisicamente conectado à porta CONSOLE em um dispositivo Junos. Você pode usar SSH ou telnet para se conectar à interface de gerenciamento do dispositivo ou a um servidor de console que esteja diretamente conectado à porta CONSOLE do dispositivo.

Dispositivos novos ou zerados com configurações padrão de fábrica exigem acesso por meio de uma conexão de console. Assim, você pode usar o Ansible para configurar inicialmente um dispositivo que ainda não está configurado para acesso remoto. Você pode usar uma conexão de console serial quando estiver conectado diretamente ao dispositivo ou pode usar telnet ou SSH por meio de um servidor de console conectado diretamente ao dispositivo.

Por padrão, os juniper.device módulos usam SSH para se conectar a um dispositivo. Para usar telnet ou uma conexão de console serial, defina o mode parâmetro como o valor apropriado. Para fazer telnet para um dispositivo, defina o mode argumento como telnet. Para usar uma conexão de console serial, defina o mode argumento como serial. A Tabela 1 resume os modos de conexão, seus valores padrão para determinados parâmetros e qualquer configuração necessária do Junos OS. Os juniper.device módulos suportam todos os modos de conexão.

Tabela 1: Modos de conexão para o juniper.device Conjunto de módulos

Modo de conexão

Valor do mode argumento

Porta padrão

Configuração necessária do Junos OS

NETCONF sobre SSH (padrão)

830

[edit system services]
netconf {
    ssh;
}

Conexão de console serial

serial

/dev/ttyUSB0

SSH por meio de um servidor de console

22

Telnet para dispositivo Junos

telnet

23

[edit system services]
telnet;

Telnet através de um servidor de console

telnet

23

Observação:

Antes de acessar a interface de gerenciamento usando telnet ou NETCONF sobre SSH, você deve primeiro habilitar o serviço apropriado no nível da [edit system services] hierarquia. Como o telnet usa senhas de texto não criptografado (criando assim uma possível vulnerabilidade de segurança), recomendamos que você use SSH.

Quando você usa os juniper.device módulos para gerenciar um dispositivo Junos, o dispositivo remoto deve ser capaz de autenticar o usuário do Ansible usando credenciais apropriadas para o protocolo especificado. Para obter mais informações, consulte Autenticar usuários que executam módulos do Ansible em dispositivos Junos.

Os juniper.device módulos oferecem suporte a diferentes conexões do Ansible ao se conectar a dispositivos Junos, incluindo conexões locais (por tarefa) e conexões persistentes (por reprodução). A conexão Ansible determina se o Ansible estabelece uma conexão separada com o host para cada tarefa na reprodução ou se estabelece uma única conexão com um host que persiste em todas as tarefas na reprodução. Para obter informações sobre como especificar a conexão Ansible, consulte Noções Básicas Sobre Conexões Ansible Locais e Persistentes.

Entendendo as conexões Ansible locais e persistentes

Os juniper.device módulos não exigem Python em dispositivos Junos porque usam o Junos PyEZ e a API XML do Junos sobre NETCONF para interagir com o dispositivo. Portanto, para realizar operações em dispositivos Junos, você deve executar módulos localmente no nó de controle do Ansible, onde o Python está instalado. Você pode executar os módulos localmente incluindo connection: local no playbook play. Quando você usa connection: localo , o Ansible estabelece uma conexão separada com o host para cada tarefa na reprodução que executa operações no host.

Os juniper.device módulos também oferecem suporte connection: juniper.device.pyez para estabelecer uma conexão persistente com um host. Quando você usa uma conexão persistente, o Ansible ainda executa os módulos localmente no nó de controle. No entanto, a conexão persistente estabelece e mantém uma única conexão com cada host, que persiste sobre a execução de todas as tarefas na jogada. Uma conexão persistente pode ser mais eficiente para executar várias tarefas do que usar uma conexão separada com o anfitrião para cada tarefa na jogada.

A Tabela 2 resume as conexões do Ansible para os módulos no juniper.device conjunto de módulos.

Tabela 2: Conexões Ansible suportadas pelo juniper.device Conjunto de módulos

Conexão Ansible

Descrição

connection: local

Execute os módulos localmente no nó de controle do Ansible, mas estabeleça uma conexão separada com um host para cada tarefa na reprodução que executa operações no host.

connection: juniper.device.pyez

Execute os módulos localmente no nó de controle do Ansible, mas estabeleça uma conexão persistente com um host que persista na execução de todas as tarefas na reprodução.

Você pode definir parâmetros de conexão e autenticação para conexões locais e persistentes no guia estratégico. As conexões locais estabelecem uma conexão separada com um host para cada tarefa. Assim, você pode definir os parâmetros de conexão e autenticação para conexões locais na seção de vars: reprodução e na lista de argumentos de um módulo. Os argumentos do módulo têm precedência. Por outro lado, as conexões persistentes têm uma única conexão para todas as tarefas do jogo. Assim, você deve definir os parâmetros de conexão e autenticação para conexões persistentes globalmente na seção de vars: reprodução.

O guia estratégico a seguir estabelece uma conexão persistente com cada host usado para todas as tarefas na reprodução. As credenciais do usuário, que são armazenadas em um arquivo de cofre do Ansible, são definidas globalmente na seção de vars: reprodução.

Conectar-se a um dispositivo usando SSH

Os juniper.device módulos são compatíveis com o uso de SSH para conexão a um dispositivo Junos. Você pode estabelecer uma sessão NETCONF sobre SSH na interface de gerenciamento do dispositivo. Você também pode estabelecer uma conexão SSH com um servidor de console que esteja diretamente conectado à porta CONSOLE do dispositivo. O servidor SSH deve ser capaz de autenticar o usuário usando mecanismos de autenticação SSH padrão, conforme descrito em Autenticar usuários que executam módulos Ansible em dispositivos Junos. Para estabelecer uma sessão NETCONF sobre SSH, você também deve atender aos requisitos descritos em Configurar o Ansible para nós gerenciados do Junos OS.

Os módulos consultam automaticamente o arquivo de configuração SSH padrão em ~/.ssh/config, se houver. Você também pode incluir o ssh_config parâmetro para especificar um arquivo de configuração diferente.

Para conexões SSH com um dispositivo Junos ou com um servidor de console conectado ao dispositivo, os módulos primeiro tentam a autenticação baseada em chave pública SSH e, em seguida, tentam a autenticação baseada em senha. Quando a autenticação baseada em senha é usada, a senha fornecida é usada como a senha do dispositivo. Quando as chaves SSH estão em uso, a senha fornecida é a senha para desbloquear a chave privada. Você não precisará fornecer uma senha se carregar a chave em um agente de chave SSH ou se a chave privada SSH tiver uma senha vazia. No entanto, não recomendamos o uso de chaves privadas SSH com senhas vazias.

O manual a seguir estabelece uma sessão NETCONF sobre SSH com um dispositivo Junos e recupera os fatos do dispositivo. O guia estratégico usa chaves SSH que são carregadas em um agente de chave SSH.

Os módulos também permitem que você se conecte a um dispositivo Junos por meio de uma conexão SSH com um servidor de console. Nesse caso, você deve especificar as credenciais de login para o dispositivo Junos e o servidor de console. Use os parâmetros and passwd para especificar as credenciais de login do user Junos OS. Use os cs_user parâmetros and cs_passwd para especificar as credenciais do servidor de console. Quando as chaves SSH estão em uso, cs_passwd é a senha da chave privada. Além disso, defina o port argumento como a porta TCP que mapeia para o dispositivo TTY, se aplicável.

O guia estratégico a seguir solicita as credenciais do usuário para o servidor de console e o dispositivo Junos. O módulo é autenticado com o servidor de console e, em seguida, com o dispositivo Junos. Se a autenticação for bem-sucedida, o playbook recuperará os fatos do dispositivo do nó gerenciado e imprimirá a versão do Junos OS.

Os módulos da Juniper Networks consultam automaticamente o arquivo de configuração do cliente SSH padrão em ~/.ssh/config, se ele existir. Você pode usar um arquivo de configuração SSH diferente incluindo o ssh_config parâmetro e especificando o local do arquivo de configuração. Por exemplo:

Conectar-se a um dispositivo usando Telnet

Os juniper.device módulos permitem que você se conecte a um dispositivo Junos usando telnet, que fornece acesso não criptografado ao dispositivo de rede. Você pode fazer telnet para a interface de gerenciamento do dispositivo ou para um servidor de console que esteja diretamente conectado à porta CONSOLE do dispositivo. Acessar o dispositivo por meio de um servidor de console permite que você configure inicialmente um dispositivo novo ou zerado que ainda não está configurado para acesso remoto. Para fazer telnet para a interface de gerenciamento, você deve configurar o serviço Telnet no nível de [edit system services] hierarquia em todos os dispositivos que exigem acesso à interface.

Para fazer telnet para o dispositivo remoto, defina o mode parâmetro como telnet e, opcionalmente, inclua o port parâmetro para especificar uma porta. Quando você define mode como telnet , mas omite o port parâmetro, o valor padrão para port é 23. Para conexões persistentes, defina mode e port na vars: seção. Para conexões locais, você pode definir os parâmetros na vars: seção ou como argumentos de módulo.

O manual a seguir faz telnets para um dispositivo Junos usando a porta 7016, recupera os fatos do dispositivo e os salva em um arquivo. O guia estratégico solicita o nome de usuário e a senha.

Conecte-se a um dispositivo usando uma conexão de console serial

Os juniper.device módulos permitem que você se conecte a um dispositivo Junos usando uma conexão de console serial, o que é útil quando você deve configurar inicialmente um novo dispositivo que ainda não está configurado para acesso remoto. Para usar este método de conexão, seu terminal ou laptop deve estar fisicamente conectado ao dispositivo Junos através da porta CONSOLE . Para obter instruções detalhadas sobre como se conectar à porta CONSOLE em um dispositivo Junos, consulte a documentação de hardware do seu dispositivo específico.

Para se conectar a um dispositivo Junos por meio de uma conexão de console serial, defina o parâmetro do mode módulo como serial, e opcionalmente inclua o port parâmetro para especificar uma porta. Quando você define mode como serial , mas omite o port parâmetro, o valor padrão para port é /dev/ttyUSB0. Para conexões persistentes, defina mode e port na vars: seção. Para conexões locais, você pode definir os parâmetros na vars: seção ou como argumentos de módulo.

O guia estratégico a seguir se conecta a um dispositivo Junos por meio da porta CONSOLE e, em seguida, carrega e confirma uma configuração inicial. O guia estratégico solicita o nome de usuário e a senha.