Ansible ignora erro

Ansible Ignora Erro



Ao configurar a tarefa em outro dispositivo host, os erros do Ansible são uma ocorrência comum. Eles representam estados de sistema únicos e possivelmente significativos. Apesar disso, pode haver alguns erros que queremos evitar para que as tarefas também sejam executadas e mostrem a saída se forem executadas com sucesso. Neste artigo, falaremos sobre os erros do Ansible e como desconsiderá-los. Demonstramos especificamente uma técnica para suprimir e ignorar as falhas com o Ansible.

Ao contrário da correção de erros, evitar falhas implica continuar com as tarefas, desde que a atividade no playbook Ansible não seja afetada. A ferramenta ansible emite uma mensagem de aviso quando não consegue concluir uma tarefa ou playbook durante a depuração de uma tarefa. As causas são diversas, mas cabe a nós identificá-las e encontrar uma solução. Infelizmente, nem todos os erros podem ser corrigidos. Você pode optar por começar a ignorar os erros se não quiser ou se não conseguir resolver o problema.







A maioria dos gerentes de controle no Ansible usa essa estratégia ao se conectar com os hosts de destino em cenários do mundo real. O padrão do Ansible é interromper as atividades em um dispositivo de destino e continuar as atividades em alguns outros servidores sempre que retornar um resultado diferente de zero de uma instrução ou um erro de um pacote. Embora existam certas situações em que você pode querer agir de maneira diferente. Um resultado retornado que não é zero ocasionalmente denota progresso. Muitas vezes, você pode querer que o processamento pare em um servidor para que ele pare em todos os hosts.



Formas de Ignorar os Erros no Ansible

No Ansible, diferentes formas são utilizadas para realizar as tarefas do playbook caso apresente falha na tarefa. A seguir estão as diferentes maneiras que ajudarão a executar a tarefa, mesmo que o Ansible esteja apresentando erros:



1. Utilizando o comando Ignore_Errors=True





Mesmo que a tarefa continue a falhar, o playbook continuará a ser executado se você especificar o comando ignore_errors=true na parte inferior da atividade. Apesar de se preocupar com a conclusão ou falhas da tarefa, ele ainda realiza a atividade subsequente. Se de alguma forma a atividade não for bem-sucedida, ele passa para a próxima. Se a atividade for bem-sucedida, ela conclui um processo depois disso.

2. Utilizando o modo de verificação no Ansible



Utilize as variáveis ​​especiais booleanas, o modo de verificação do Ansible, que é definido como True quando o Ansible estiver no método de verificação para ignorar uma tarefa ou desconsiderar as falhas em uma tarefa sempre que a versão do método de verificação do Ansible for usada.

3. Utilizando o comando Failed=When no Ansible Playbook

No Ansible, também podemos utilizar a condicional failed_when para especificar qualquer “falha” implícita em cada atividade. Semelhante a todas as instruções condicionais do Ansible, as listas de vários critérios failed_when são combinadas com um implícito. Assim, a tarefa só falha se todas as condições forem satisfeitas.

Pré-requisitos para ignorar os erros no Ansible

A ferramenta de configuração Ansible deve cumprir os critérios necessários para incluir o exemplo concreto:

  • Um servidor principal Ansible ou podemos dizer um servidor de controle é necessário para que possamos configurar os comandos no dispositivo de destino.
  • Precisamos ter os hosts locais para que possamos entrar em contato com cada um deles para usar as diferentes formas de ignorar os erros no software Ansible. Usamos o host local nesta instância como um servidor remoto de destino durante a atividade.
  • Escrevemos os playbooks, executamos os comandos Ansible ignore error e usamos o dispositivo ansible-controller para rastrear os resultados em hosts distantes.

Para ajudar o aluno a entender o princípio de utilizar o erro de ignorar em um manual do Ansible, vamos implementar o seguinte exemplo:

Exemplo: Utilizando o Comando Ignore_Errors=True

Este é o exemplo mais simples que usa o Ansible para implementação, onde incluímos várias tarefas no playbook e executamos as tarefas usando o comando ignore error. Para fazer isso, primeiro escrevemos o seguinte código no terminal Ansible:

[ raiz @ mestre ansible ] # nano ignore_errors.yml

Após a criação e inicialização do playbook ignore_errors.yml, agora começamos a inserir os comandos no playbook. Primeiramente, usamos a opção “hosts”, passando os hosts fornecidos como “localhost”. Inserimos o valor 'falso' no argumento 'reunir fatos' para que não possamos obter informações adicionais sobre o host local ao executar o manual.

Depois disso, começamos listando cada tarefa que desejamos concluir na opção “tarefas”. Na primeira tarefa, exibimos o documento inexistente no diretório Ansible. Primeiro, passamos o título da tarefa que queremos implementar. Então, usamos a opção de comando e armazenamos o documento de texto inexistente e usamos “ls” para que possamos executar o comando na primeira tarefa. Após a primeira tarefa, usamos o comando ignore_errors=true para que, se a tarefa acima da instrução ignore falhar, ela ignore a tarefa e passe para a próxima tarefa e a execute.

Listamos outra tarefa que é usada. Se a primeira tarefa falhar, a ferramenta Ansible deverá executar a próxima tarefa. Em seguida, usamos o parâmetro debug para executar a tarefa no playbook.

- hosts: localhost
coletar_fatos: falso
tarefas:
- nome: lista um inexistente arquivo
comando: ls inexistente.txt
ignore_errors: verdadeiro

- nome: continuar tarefa depois de falhar
depurar:
msg: 'Continuar tarefa após falha'

Agora, listamos tarefas suficientes para executar e verificamos o comando ignore error. Agora, encerramos o playbook e voltamos ao terminal principal. Depois disso, executamos o playbook. Para isso, utilizamos a seguinte declaração:

[ raiz @ mestre ansible ] # ansible-playbook ignore_errors.yml

Depois de executar o comando acima, obtemos a seguinte saída. Como você pode ver, a primeira tarefa que lista um arquivo inexistente mostra uma falha. Mas a segunda tarefa é executada com sucesso porque ignoramos a primeira tarefa utilizando ignore_error=true no playbook.

Conclusão

Aprendemos o que significa ignorar o erro no Ansible. Discutimos como ele funciona no manual do Ansible. Também discutimos as diferentes formas de ignorar o erro no Ansible durante a execução das tarefas. Implementamos um exemplo para que todo conceito fique claro para o usuário.