Try / catch com rescue e always
Recupere-se normalmente de falhas.
Try / catch com rescue e always é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 2 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.
Os blocos ganham uma rede de segurança
Combine um block com rescue e always para obter tentativa, captura e finalização para suas tarefas. As falhas se tornam recuperáveis. 🛟
A seção rescue
Se alguma tarefa do bloco falhar, o Ansible salta para rescue e executa essas tarefas no lugar dela, como uma cláusula de captura.
- block:
- ansible.builtin.command: /opt/risky-step
rescue:
- ansible.builtin.debug:
msg: "Step failed, recovering"always é executado independentemente do resultado
A seção always é executada independentemente de o bloco ter sido concluído com sucesso ou ter falhado, sendo perfeita para limpezas como remover um arquivo temporário.
- block:
- ansible.builtin.command: /opt/deploy
always:
- ansible.builtin.file:
path: /tmp/lock
state: absentOs três juntos
Use block, rescue e always como uma única estrutura: tente realizar o trabalho, capture as falhas e depois sempre finalize de forma limpa.
- block:
- ansible.builtin.command: /opt/deploy
rescue:
- ansible.builtin.debug:
msg: "Rolling back"
always:
- ansible.builtin.debug:
msg: "Done either way"rescue redefine a falha
Se rescue for concluído com sucesso, o host deixa de ser considerado com falha. O play continua como se o bloco tivesse sido concluído com sucesso.
Ordem de execução
As tarefas do block são executadas primeiro; em caso de falha, o restante do bloco é ignorado e rescue é iniciado. always é executado por último em todos os casos.
Quando o próprio rescue falha
Se uma tarefa em rescue também falhar, o host será marcado como com falha, mas always ainda será executado antes que o play pare para esse host.
Inspecione o erro
Dentro de rescue, você pode ler ansible_failed_task e ansible_failed_result para ver qual tarefa falhou e por quê.
- rescue:
- ansible.builtin.debug:
msg: "Failed task was {{ ansible_failed_task.name }}"Um uso real: reversão
O padrão clássico é fazer a implantação no block, desfazer a alteração em rescue e reiniciar ou desbloquear em always. Uma recuperação limpa em todas as execuções.
Não se trata apenas de ocultar erros
rescue serve para uma recuperação controlada, não para silenciar erros. Registre a falha e corrija o estado; não finja que nada deu errado. ⚠️
Sem rescue, há uma parada imediata
Sem uma seção rescue, um bloco com falha se comporta como qualquer tarefa com falha: ele interrompe imediatamente o play para esse host.
Verificação rápida
Vamos confirmar como always se comporta.
Recapitulação
rescue captura as falhas do bloco e recupera o host, enquanto always é executado sempre para realizar a limpeza. Tentativa, captura e finalização no Ansible. ✅
Perguntas Frequentes
A aula “Try / catch com rescue e always” é grátis?
Sim — o texto completo de “Try / catch com rescue e always” é 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 “Try / catch com rescue e always”?
Recupere-se normalmente de falhas. 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 2 de 4.
Quanto tempo leva a aula “Try / catch com rescue e always”?
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