0Pricing
DevOps Bootcamp · Aula

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: absent

Os 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

  1. Agrupe tarefas com block
  2. Try / catch com rescue e always
  3. Controle de falhas: failed_when e ignore_errors
  4. Asserções personalizadas com o módulo fail
← Voltar para DevOps Bootcamp