Sobes.tech
Junior

Šta su handleri?

sobes.tech АИ

Одговор од АИ

Handleri (Обradači) u kontekstu DevOps-a, posebno u alatima kao što je Ansible, su zadaci ili blokovi koda koji se izvršavaju samo pod određenim uslovima — kada ih eksplicitno "obavesti" druga zadatak. Oni se koriste za restartovanje usluga, restartovanje servera ili izvršavanje drugih radnji koje treba da se dogode samo nakon značajnih promena u konfiguraciji.

Ključne osobine:

  • Izvršavaju se na obaveštenje: Handler se pokreće samo nakon što ga jedna ili više zadataka eksplicitno "obaveste" (npr., pomoću notify u Ansible).
  • Jednokratno izvršenje: Čak i ako više zadataka obavesti isti handler, on će se izvršiti samo jednom na kraju playbook-a ili sekcije include_tasks/import_tasks gde je definisan. Ovo sprečava višestruko restartovanje usluga.
  • Deklarativni pristup: Omogućava deklarativno definisanje koje radnje treba preduzeti pri promeni stanja sistema, bez brige o ručnom pokretanju tih radnji.

Primer obaveštenja handlera u Ansible zadatku:

- name: Konfiguracija web servera
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify:  # Obaveštavamo handler
    - restart nginx

Definicija handlera:

handlers:
  - name: restart nginx  # Ime handlera, poklapa se sa imenom u notify
    service:
      name: nginx
      state: restarted