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 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 mais antigos e preteridos suportados Juniper.junos usando 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 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 }}"