Sobes.tech
Junior

Kas ir handleri?

sobes.tech AI

Atbilde no AI

DevOps kontekstā, īpaši tādos rīkos kā Ansible, Handleri (Apstrādātāji) ir uzdevumi vai koda bloki, kas tiek izpildīti tikai noteiktos apstākļos — kad tie ir skaidri "paziņoti" no citas uzdevuma puses. Tie tiek izmantoti pakalpojumu pārstartēšanai, serveru pārstartēšanai vai citām darbībām, kas jāveic tikai pēc būtiskām konfigurācijas izmaiņām.

Galvenās īpašības:

  • Tiek izpildīti pēc paziņojuma: Handleris sāk darboties tikai pēc tam, kad viens vai vairāki uzdevumi to skaidri "paziņo" (piemēram, izmantojot notify Ansible).
  • Vienreizēja izpilde: Pat ja vairāki uzdevumi paziņo par to pašu handleri, tas tiks izpildīts tikai vienu reizi spēles grāmatā vai sadaļā include_tasks/import_tasks, kur tas ir definēts. Tas novērš pakalpojumu atkārtotu pārstartēšanu.
  • Deklaratīva pieeja: Tie ļauj deklaratīvi noteikt, kādas darbības jāveic, mainot sistēmas stāvokli, bez nepieciešamības manuāli tās palaist.

Piemērs, kā paziņot handleri Ansible uzdevumā:

- name: Web servera konfigurācija
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify:  # Paziņojam handleri
    - restart nginx

Handlera definīcija:

handlers:
  - name: restart nginx  # Handlera nosaukums, atbilst notify nosaukumam
    service:
      name: nginx
      state: restarted