Conceito e mecanismo
Uma tarefa pode terminar com sucesso e não mudar estado; outra pode mudar ficheiros sem produzir um serviço utilizável. Define failed_when e changed_when com base no contrato da operação. Uma lista de condições failed_when usa conjunção implícita: se o requisito é falhar quando qualquer condição ocorre, exprime a disjunção pretendida. Para flags textuais, normaliza o valor com conversão apropriada em vez de assumir que a string false é sempre interpretada como o booleano false. Handlers são notificados por alterações e normalmente aguardam as fronteiras previstas. Se uma verificação depende da configuração carregada, garante que os handlers pendentes foram executados antes dessa verificação.
Aplicação guiada
Blocos com rescue permitem recuperação, mas não capturam automaticamente todos os problemas. Erros de definição e hosts unreachable não seguem o mesmo caminho de rescue de uma tarefa com falha normal. Um rescue bem-sucedido pode permitir continuidade, incluindo não acionar os limites de falha que alguém esperava. Num rollout fictício, a reversão funciona mas a regra de aceitação exige parar depois da falha funcional. Codifica essa decisão explicitamente. Serial controla lotes de hosts; forks controla capacidade de execução concorrente e não equivale a lotes com aceitação. Inclui verificação funcional e reentrada antes de avançar. A equipa deve saber distinguir recuperação do serviço, aprovação da mudança e autorização para continuar a expansão.
Rollback bem-sucedido recupera o serviço anterior; não demonstra que a nova versão foi aceite.
Armadilhas comuns
Lista como OR; rescue como captura universal; forks como serial; recuperação como aprovação.
Tópicos relacionados: Estado e repetibilidade · Inventários, variáveis e configuração · Acesso e ambiente de execução
Faz a automação parar pelas mesmas condições que a equipa usa para decidir.
Referência: Block rescue and always · EX294 current objectives inspected 2026-09-30; RHCE in Ansible framework effective 2026-05-11; booking product version not publicly pinned