Ansible Academy · Aula

Listen: um acionador, vários handlers

Distribua uma única notificação.

Aula 4 de 413 etapas

Listen: um acionador, vários handlers é uma aula grátis de Ansible Academy no CoddyKit. Esta é a aula 4 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.

Um evento, várias reações

Às vezes, uma alteração deve acionar vários manipuladores ao mesmo tempo. A palavra-chave listen permite que vários manipuladores se inscrevam em um único tópico.

Notifique um tópico, não um nome

Com listen, o notify de uma tarefa aponta para um nome de evento lógico, em vez do título de um manipulador específico.

- name: Update certs
  ansible.builtin.copy:
    src: site.pem
    dest: /etc/ssl/site.pem
  notify: restart web stack

Os manipuladores se inscrevem com listen

Cada manipulador adiciona uma linha listen que nomeia o mesmo tópico. Todo manipulador que estiver ouvindo esse tópico será acionado quando ele for notificado.

handlers:
  - name: Restart nginx
    ansible.builtin.service:
      name: nginx
      state: restarted
    listen: restart web stack

Vários manipuladores, um tópico

Atribua o mesmo valor a listen em vários manipuladores e uma única notificação será distribuída a todos eles. É ótimo para reinícios agrupados.

  - name: Restart php-fpm
    ansible.builtin.service:
      name: php-fpm
      state: restarted
    listen: restart web stack

Desacople tarefas de manipuladores

A grande vantagem é o desacoplamento: as tarefas referenciam um tópico, e você pode adicionar ou remover manipuladores sem alterar as tarefas que fazem a notificação.

O nome ainda é opcional, mas útil

Um manipulador com listen ainda pode ter um name, o que mantém a saída legível e também permite que outras tarefas o notifiquem diretamente.

Um manipulador pode ouvir vários tópicos

Forneça uma lista a listen e um manipulador responderá a vários tópicos diferentes. Ele reagirá ao evento que for notificado.

    listen:
      - restart web stack
      - reload tls

Continua idempotente

As notificações baseadas em tópicos obedecem às mesmas regras: os manipuladores só são acionados quando há changed, e cada um ainda é executado no máximo uma vez por play.

A ordem continua sendo a ordem de definição

Quando um tópico desperta vários manipuladores, eles são executados na ordem em que foram definidos na lista de manipuladores, assim como os manipuladores comuns.

Comum em funções compartilhadas

Funções reutilizáveis usam listen para que os consumidores notifiquem um tópico estável, enquanto a função pode alterar livremente seu conjunto interno de manipuladores.

Notify versus listen

notify é o sinal enviado por uma tarefa; listen é a inscrição de um manipulador. Juntos, eles transformam um evento em várias ações. 🔔

Verificação rápida

Você quer que uma única notificação reinicie três serviços ao mesmo tempo. O que permite que vários manipuladores respondam a um único tópico?

Recapitulação

Com listen, uma tarefa notifica um tópico e todos os manipuladores inscritos são executados. Isso desacopla as tarefas dos manipuladores e permite uma expansão organizada. 🎯

Grátis para começar

Aprenda YAML com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “Listen: um acionador, vários handlers” é grátis?

Sim — o texto completo de “Listen: um acionador, vários 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 “Listen: um acionador, vários handlers”?

Distribua uma única notificação. 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 4 de 4.

Quanto tempo leva a aula “Listen: um acionador, vários 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