Resolução de problemas de erros de autenticação ansible ao gerenciar dispositivos que executam o Junos OS
As seções a seguir descrevem erros de autenticação que você pode encontrar ao usar o Ansible para gerenciar dispositivos que executam o Junos OS. Essas seções também apresentam possíveis causas e soluções para cada erro.
Solução de problemas conecteautor problemas
Problema
Descrição
Durante a execução de um juniper.device
ou Juniper.junos
módulo, o nó de controle Ansible gera um ConnectAuthError
erro para autenticação falha. Por exemplo:
"msg": "Unable to make a PyEZ connection: ConnectAuthError(dc1a.example.net)"
Causa
O dispositivo que executa o Junos OS pode não autenticar o usuário pelos seguintes motivos:
O usuário não tem uma conta no dispositivo que executa o Junos OS.
O usuário tem uma conta com uma senha baseada em texto configurada no dispositivo que executa o Junos OS, mas a senha ou nenhuma senha errada é fornecida para o usuário ao executar o módulo.
O usuário tem uma conta no dispositivo que executa o Junos OS com chaves SSH configuradas, mas as chaves SSH são inacessíveis no dispositivo ou no nó de controle.
Solução
Garanta que o usuário que executa os módulos tenha uma conta de login do Junos OS em todos os dispositivos alvo que executam o Junos OS e que um par de chaves pública/privada SSH ou senha baseada em texto esteja configurado para a conta. Se as chaves SSH estiverem configuradas, verifique se o usuário pode acessá-las. Para obter mais informações, veja como autenticar usuários executando módulos ansible em dispositivos que executam o Junos OS.
Erros de atributos de solução de problemas conn_type
Problema
Descrição
Durante a execução de um juniper.device
módulo em um dispositivo que executa o Junos OS, o nó de controle Ansible gera o seguinte erro:
AttributeError: 'JuniperJunosModule' object has no attribute 'conn_type'
Causa
Considerando que os módulos da Juniper Networks são compatíveis Juniper.junos
com o uso de um provider
nípulo para definir parâmetros de conexão e autenticação, os juniper.device
módulos não suportam o uso de um provider
nípulo e geram o erro mencionado se um for mencionado.
Solução
Se você fornecer parâmetros de conexão e autenticação na jogada do manual para os juniper.device
módulos, os parâmetros devem ser definidos no local apropriado para a conexão Ansible. Para conexões persistentes (connection: juniper.device.pyez
), defina os parâmetros sob a vars:
seção. Para conexões locais (connection: local
), defina os parâmetros sob a vars:
seção ou como argumentos de módulo de alto nível. Por exemplo:
--- - name: Get device facts hosts: dc1 connection: juniper.device.pyez gather_facts: no vars_prompt: - name: "DEVICE_PASSWORD" prompt: "Device password" private: yes vars: passwd: "{{ DEVICE_PASSWORD }}" tasks: - name: Get device facts juniper.device.facts: savedir: "{{ playbook_dir }}"
--- - name: Get device facts hosts: dc1 connection: local gather_facts: no vars_prompt: - name: "DEVICE_PASSWORD" prompt: "Device password" private: yes tasks: - name: Get device facts juniper.device.facts: passwd: "{{ DEVICE_PASSWORD }}" savedir: "{{ playbook_dir }}"