Sobes.tech
Junior

Wat zijn handlers?

sobes.tech AI

Antwoord van AI

Handlers (Handlers) in de context van DevOps, vooral in tools zoals Ansible, zijn taken of codeblokken die alleen worden uitgevoerd onder bepaalde voorwaarden — wanneer ze expliciet worden "geïntegreerd" door een andere taak. Ze worden gebruikt om services opnieuw op te starten, servers te herstarten of andere acties uit te voeren die alleen moeten plaatsvinden na belangrijke configuratiewijzigingen.

Belangrijkste kenmerken:

  • Worden uitgevoerd op notificatie: De handler wordt alleen gestart nadat een of meerdere taken deze expliciet hebben "geïntegreerd" (bijvoorbeeld met notify in Ansible).
  • Eénmalige uitvoering: Zelfs als meerdere taken dezelfde handler informeren, wordt deze slechts één keer uitgevoerd aan het einde van het playbook of de sectie include_tasks/import_tasks waar hij is gedefinieerd. Dit voorkomt meerdere herstarts van services.
  • Declaratieve aanpak: Ze stellen je in staat om declaratief te bepalen welke acties moeten worden ondernomen bij een wijziging in de systeemstatus, zonder je zorgen te maken over handmatige uitvoering.

Voorbeeld van een handler-notificatie in een Ansible-taak:

- name: Configureer webserver  # Taak die de configuratie kan wijzigen
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify:  # Informeer de handler
    - restart nginx

Definitie van de handler:

handlers:
  - name: restart nginx  # Handler-naam, komt overeen met de naam in notify
    service:
      name: nginx
      state: restarted