Sobes.tech
Junior

O que são os manipuladores?

sobes.tech IA

Resposta da IA

Os manipuladores (Handlers) no contexto de DevOps, especialmente em ferramentas como o Ansible, são tarefas ou blocos de código que são executados apenas sob certas condições — quando são explicitamente "notificados" por outra tarefa. São usados para reiniciar serviços, reiniciar servidores ou realizar outras ações que devem ocorrer apenas após alterações significativas na configuração.

Características principais:

  • Executados por notificação: O manipulador é iniciado apenas após uma ou várias tarefas o "notificarem" explicitamente (por exemplo, usando notify no Ansible).
  • Execução única: Mesmo que várias tarefas notifiquem o mesmo manipulador, ele será executado apenas uma vez ao final do playbook ou seção include_tasks/import_tasks onde está definido. Isso evita múltiplos reinícios de serviços.
  • Abordagem declarativa: Permitem definir de forma declarativa quais ações devem ser tomadas ao alterar o estado do sistema, sem se preocupar em executar manualmente essas ações.

Exemplo de notificação de manipulador em uma tarefa do Ansible:

- name: Configurar servidor web  # Tarefa que pode alterar a configuração
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify:  # Notificamos o manipulador
    - restart nginx

Definição do manipulador:

handlers:
  - name: restart nginx  # Nome do manipulador, coincide com o nome em notify
    service:
      name: nginx
      state: restarted