Solucionar problemas de erros do Ansible ao configurar dispositivos Junos
Solucione problemas que surgem quando você usa o módulo Ansible para configurar dispositivos que executam o Junos OS ou dispositivos que executam o juniper.device.config Junos OS Evolved.
As seções a seguir descrevem erros que você pode encontrar ao usar o módulo Ansible para gerenciar a configuração em dispositivos que executam o juniper.device.config Junos OS ou dispositivos que executam o Junos OS Evolved. Essas seções também apresentam possíveis causas e soluções para cada erro.
Solucionar problemas de erros de tempo limite de configuração
Problema
Descrição
O juniper.device.config módulo gera uma mensagem de TimeoutExpiredError erro e falha ao atualizar a configuração do dispositivo.
ncclient.operations.errors.TimeoutExpiredError: ncclient timed out while waiting for an rpc reply
Causa
O tempo padrão para um RPC NETCONF atingir o tempo limite é de 30 segundos. Grandes alterações de configuração podem exceder esse valor, fazendo com que a operação atinja o tempo limite antes que a configuração possa ser carregada e confirmada.
Solução
Para acomodar alterações de configuração que podem exigir um tempo de confirmação maior que o intervalo de tempo limite RPC padrão, defina o argumento do timeout módulo como um valor apropriado e execute novamente o playbook.
Solucionar problemas de erros de bloqueio de configuração
Problema
Descrição
O juniper.device.config módulo gera uma mensagem de erro indicando que o banco de dados de configuração não pode ser bloqueado. Por exemplo:
FAILED! => {"changed": false, "msg": "Unable to open the configuration in exclusive mode: LockError(severity: error, bad_element: None, message: configuration database modified)"}
ou
FAILED! => {"changed": false, "msg": "Unable to open the configuration in exclusive mode: LockError(severity: error, bad_element: lock-configuration, message: permission denied)"}
Causa
Um erro de bloqueio de configuração pode ocorrer pelos seguintes motivos:
-
Outro usuário tem um bloqueio exclusivo na configuração.
-
Outro usuário fez alterações no banco de dados de configuração, mas ainda não confirmou as alterações.
-
O usuário que executa o módulo Ansible não tem permissões para configurar o dispositivo.
Solução
A LockError cadeia de caracteres da mensagem geralmente indica a causa raiz do problema. Se outro usuário tiver modificado ou tiver um bloqueio exclusivo na configuração, aguarde até que as alterações sejam confirmadas ou o bloqueio seja liberado e execute o guia estratégico novamente. Se a causa for que o usuário não tem permissões para configurar o dispositivo, execute o playbook com um usuário que tenha as permissões necessárias ou, se apropriado, configure o dispositivo Junos para dar ao usuário atual as permissões necessárias para fazer as alterações.
Solucionar problemas de erros de carregamento de configuração
Problema
Descrição
O juniper.device.config módulo gera uma mensagem de ConfigLoadError erro indicando que a configuração não pode ser modificada porque a permissão foi negada.
FAILED! => {"changed": false, "msg": "Failure loading the configuraton: ConfigLoadError(severity: error, bad_element: scripts, message: error: permission denied)"}
Causa
O módulo Ansible gera essa mensagem de erro quando o usuário que executa o módulo tem permissão para modificar a configuração, mas não tem permissão para alterar a seção solicitada da configuração.
Solução
Para resolver esse problema, execute o playbook com um usuário que tenha as permissões necessárias ou, se apropriado, configure o dispositivo Junos para dar ao usuário atual as permissões necessárias para fazer as alterações.
Solucionar problemas de erros de confirmação
Problema
Descrição
O juniper.device.config módulo gera uma mensagem de CommitError erro indicando que a operação de confirmação falhou devido a um erro de bloqueio de configuração.
FAILED! => {"changed": false, "msg": "Unable to commit configuration: CommitError(edit_path: None, bad_element: None, message: error: remote lock-configuration failed on re0\n\nnote: consider using 'commit synchronize force' to\nterminate remote edit sessions and force the commit)"}
Causa
Um erro de bloqueio de configuração pode ocorrer pelos motivos descritos em Solucionar problemas de erros de bloqueio de configuração. No entanto, uma mensagem de falha no bloqueio de configuração pode ser gerada como parte de um CommitError . LockError Essa situação pode ocorrer quando uma tarefa solicita uma verificação de confirmação e uma operação de confirmação, e o dispositivo inicia a operação de confirmação antes que a operação de verificação de confirmação libere o bloqueio de configuração.
Solução
Para habilitar tempo suficiente para o dispositivo concluir a operação de verificação de confirmação e liberar o bloqueio de configuração antes de iniciar a operação de confirmação, defina o parâmetro do check_commit_wait módulo como um valor apropriado e execute novamente o playbook. O check_commit_wait valor é o número de segundos a aguardar entre a verificação de confirmação e as operações de confirmação.
A tarefa de exemplo a seguir aguarda cinco segundos entre a verificação de confirmação e as operações de confirmação:
- name: Load configuration. Wait 5 seconds between check and commit
juniper.device.config:
load: merge
format: text
src: "build_conf/{{ inventory_hostname }}/junos.conf"
check_commit_wait: 5
comment: "updated using Ansible"