Solucione problemas de autenticação inviável ao gerenciar dispositivos Junos
As seções a seguir descrevem erros de autenticação que você pode encontrar ao usar o Ansible para gerenciar dispositivos Junos. Essas seções também apresentam possíveis causas e soluções para cada erro.
Solucionar problemas do ConnectAuthError
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 com falha. Por exemplo:
"msg": "Unable to make a PyEZ connection: ConnectAuthError(dc1a.example.net)"
Causa
O dispositivo Junos pode não autenticar o usuário pelos seguintes motivos:
-
O usuário não tem uma conta no dispositivo Junos.
-
O usuário tem uma conta com uma senha baseada em texto configurada no dispositivo Junos, mas a senha errada ou nenhuma senha é fornecida para o usuário ao executar o módulo.
-
O usuário tem uma conta no dispositivo Junos com chaves SSH configuradas, mas as chaves SSH são inacessíveis no dispositivo ou no nó de controle.
Solução
Certifique-se de que o usuário que executa os módulos tenha uma conta de login do Junos OS em todos os dispositivos Junos direcionados e que um par de chave 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 Authenticate Users Executing Ansible Modules on Junos Devices.
Resolução de problemas de erros de conn_type de atributos
Problema
Descrição
Durante a execução de um juniper.device
módulo em um dispositivo Junos, 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 suportam Juniper.junos
o usodel provider
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 supracitado se um for mencionado.
Solução
Se você fornecer parâmetros de conexão e autenticação no jogo 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 }}"