0Pricing
Ansible Academy · Aula

Quando os handlers são executados e flush_handlers

Controle o momento de execução dos handlers no fim do play.

Quando os handlers são executados e flush_handlers é uma aula grátis de Ansible Academy 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 Ansible Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ansible Academy inclui 4 aulas no total.

Os manipuladores são executados no final

Por padrão, todos os manipuladores notificados são executados uma vez, no próprio final do play, depois que todas as tarefas terminam. Não no momento em que foram notificados.

Por que adiá-los?

Adiar significa que um serviço será reiniciado uma vez, mesmo após várias alterações de configuração. Isso evita reinícios desnecessários no meio do play e economiza tempo.

Por máquina, não globalmente

O momento de execução dos manipuladores é controlado por máquina. Cada máquina executa sua própria fila de manipuladores no final do play, independentemente das outras.

O problema do reinício tardio

Às vezes, uma tarefa posterior precisa que o serviço já tenha sido reiniciado. Esperar até o final do play é tarde demais, então você precisa esvaziar a fila antecipadamente.

Conheça flush_handlers

A tarefa meta flush_handlers força todos os manipuladores pendentes a serem executados imediatamente, no meio do play.

- name: Run queued handlers now
  ansible.builtin.meta: flush_handlers

É uma tarefa meta

flush_handlers é uma ação especial de meta que controla o próprio Ansible, em vez de tocar na máquina remota.

Um uso típico

Altere a configuração, esvazie a fila para que o serviço seja reiniciado e, em seguida, execute uma tarefa de teste de fumaça no serviço recém-reiniciado.

- name: Update config
  ansible.builtin.template:
    src: app.j2
    dest: /etc/app.conf
  notify: Restart app
- ansible.builtin.meta: flush_handlers
- name: Check health
  ansible.builtin.uri:
    url: http://localhost/health

Falhas e manipuladores

Se uma máquina falhar antes do final do play, normalmente seus manipuladores pendentes não serão executados. Esse é um dos motivos pelos quais esvaziar a fila antecipadamente pode ser mais seguro.

force_handlers como rede de segurança

Defina force_handlers como true em um play para executar os manipuladores enfileirados mesmo quando uma máquina falhar mais tarde. É útil para reinícios de limpeza.

- hosts: web
  force_handlers: true
  tasks:
    - ...

Esvazie a fila com moderação

Use flush_handlers somente quando a ordem realmente exigir isso. O uso excessivo remove o benefício de agrupamento oferecido pelos manipuladores.

A linha do tempo

As tarefas são executadas de cima para baixo, os manipuladores aguardam em uma fila e, então, todos são acionados no final do play, a menos que você esvazie a fila antes. ⏱️

Verificação rápida

Você precisa reiniciar um serviço no meio do play para que uma tarefa posterior possa acessá-lo. O que deve usar?

Recapitulação

Os manipuladores normalmente são executados uma vez no final do play, por máquina. Use flush_handlers para acioná-los antecipadamente e force_handlers para que sobrevivam a falhas. 🚀

Perguntas Frequentes

A aula “Quando os handlers são executados e flush_handlers” é grátis?

Sim — o texto completo de “Quando os handlers são executados e flush_handlers” é 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 Ansible Academy, atualize para CoddyKit PRO. O curso de Ansible Academy inclui 4 aulas no total.

O que vou aprender em “Quando os handlers são executados e flush_handlers”?

Controle o momento de execução dos handlers no fim do play. Você pratica Ansible Academy 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 Ansible Academy?

Nenhuma experiência prévia é necessária. Ansible Academy 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 “Quando os handlers são executados e flush_handlers”?

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 Ansible Academy?

Sim. Cada aula de Ansible Academy 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. Notifique um handler quando houver mudanças
  2. Definindo handlers e padrões de reinicialização
  3. Quando os handlers são executados e flush_handlers
  4. Listen: um acionador, vários handlers
← Voltar para Ansible Academy