Controle de falhas: failed_when e ignore_errors
Defina o que conta como falha.
Controle de falhas: failed_when e ignore_errors é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
Você decide o que significa uma falha
O Ansible considera uma tarefa malsucedida quando ela retorna um código diferente de zero, mas você pode substituir esse comportamento. Duas palavras-chave permitem redefinir o que é uma falha. 🎛️
ignore_errors permite continuar
Defina ignore_errors como true e uma tarefa malsucedida será registrada, mas não interromperá a execução. O host continuará participando dela.
- name: Try optional cleanup
ansible.builtin.command: /opt/maybe-missing
ignore_errors: trueEla ainda aparece como malsucedida
ignore_errors não oculta a falha; a saída ainda exibe FAILED. Ele apenas impede que a falha interrompa as tarefas seguintes.
failed_when redefine a falha
Use failed_when para definir sua própria condição de falha. A tarefa falha somente quando sua expressão é verdadeira.
- name: Check status
ansible.builtin.command: /opt/healthcheck
register: result
failed_when: result.rc > 1Combine com register
failed_when geralmente examina um resultado registrado: rc, stdout ou stderr. Capture a saída primeiro e então avalie-a.
- ansible.builtin.command: grep ERROR app.log
register: out
failed_when: "'CRITICAL' in out.stdout"Nunca faça esta tarefa falhar
Defina failed_when como false e a tarefa nunca poderá falhar, mesmo com um código diferente de zero. É mais claro que ignore_errors para comandos conhecidos por gerar ruído.
- ansible.builtin.command: pkill myapp
failed_when: falseCombine várias condições
failed_when pode receber uma lista de condições unidas por and ou uma expressão composta com or para regras mais elaboradas.
failed_when:
- result.rc != 0
- "'skipped' not in result.stdout"changed_when é um parente
O recurso relacionado changed_when controla o status de alteração em vez da falha, sendo útil para marcar uma tarefa de comando como nunca alterada.
- ansible.builtin.command: /opt/report
changed_when: falseignore versus failed_when
Prefira failed_when quando puder descrever o sucesso com precisão; use ignore_errors somente para etapas realmente opcionais, executadas no melhor esforço.
Combina bem com rescue
Em vez de ignorar erros, permita que uma falha real acione um bloco rescue. Assim, você obtém recuperação em vez de um salto silencioso. 🤝
Ambas valem por tarefa
Tanto failed_when quanto ignore_errors pertencem a uma única tarefa, não a uma execução inteira. Cada tarefa decide como tratar sua própria falha.
Verificação rápida
Vamos comparar as duas palavras-chave.
Recapitulação
failed_when define exatamente quando uma tarefa falha, enquanto ignore_errors permite que a execução continue depois de uma falha. As regras são suas. ✅
Perguntas Frequentes
A aula “Controle de falhas: failed_when e ignore_errors” é grátis?
Sim — o texto completo de “Controle de falhas: failed_when e ignore_errors” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “Controle de falhas: failed_when e ignore_errors”?
Defina o que conta como falha. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Controle de falhas: failed_when e ignore_errors”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Agrupe tarefas com block
- Try / catch com rescue e always
- Controle de falhas: failed_when e ignore_errors
- Asserções personalizadas com o módulo fail