Sobes.tech
Junior

Čo sú handlery?

sobes.tech AI

Odpoveď od AI

Handler (spracovatelia) v kontexte DevOps, najmä v nástrojoch ako Ansible, sú úlohy alebo bloky kódu, ktoré sa vykonávajú iba za určitých podmienok — keď sú explicitne "oznámené" inou úlohou. Používajú sa na reštartovanie služieb, reštartovanie serverov alebo vykonanie iných akcií, ktoré by mali nastať iba po významných zmenách v konfigurácii.

Kľúčové vlastnosti:

  • Vykonávajú sa na základe oznámenia: Handler sa spustí iba potom, čo ho jedna alebo viac úloh explicitne "oznámi" (napríklad pomocou notify v Ansible).
  • Jednorazové vykonanie: Aj keď niekoľko úloh oznámi ten istý handler, ten sa vykoná iba raz na konci playbooku alebo sekcie include_tasks/import_tasks, kde je definovaný. Tým sa zabráni opakovanému reštartu služieb.
  • Deklaratívny prístup: Umožňuje deklaratívne určiť, aké akcie majú byť podniknuté pri zmene stavu systému, bez starostí o manuálne spúšťanie týchto akcií.

Príklad oznámenia handlera v úlohe Ansible:

- name: Konfigurácia webového servera
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify:  # Oznámenie handlera
    - restart nginx

Definícia handlera:

handlers:
  - name: restart nginx  # Názov handlera, zhoduje sa s názvom v notify
    service:
      name: nginx
      state: restarted