Sobes.tech
Junior

Handlerlər nədir?

sobes.tech Süni İntellekt

AI-dan cavab

DevOps kontekstində, xüsusən Ansible kimi alətlərdə, Handlerlər (İşləyicilər) yalnız müəyyən şərtlər altında işləyən tapşırıqlar və ya kod bloklarıdır — başqa bir tapşırıq tərəfindən açıq şəkildə "bildirildikdə" işləyirlər. Onlar xidmətləri yenidən başlatmaq, serverləri yenidən başlatmaq və ya konfiqurasiya dəyişikliklərindən sonra baş verməli olan digər fəaliyyətləri həyata keçirmək üçün istifadə olunur.

Əsas xüsusiyyətlər:

  • Bildirişlə işləyir: Handler yalnız bir və ya bir neçə tapşırıq onu açıq şəkildə "bildirdikdən" sonra (məsələn, Ansible-də notify istifadə etməklə) işə düşür.
  • Yeganə icra: Eyni handler-ı bir neçə tapşırıq bildirsə belə, o, yalnız playbook-un sonunda və ya include_tasks/import_tasks bölməsində təyin olunduğu yerdə bir dəfə işləyəcək. Bu, xidmətlərin çoxsaylı yenidən başlatmasının qarşısını alır.
  • Deklarativ yanaşma: Onlar sistem vəziyyətindəki dəyişikliklərə görə hansı tədbirlərin görüləcəyini deklarativ şəkildə müəyyən etməyə imkan verir, əl ilə işlətməyə ehtiyac olmadan.

Ansible tapşırığında handler bildirişinə nümunə:

- name: Veb serveri konfiqurasiya et
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify:  # Handler-ə bildiriş
    - restart nginx

Handler-in tərifi:

handlers:
  - name: restart nginx  # Handler adı, notify içindəki adla eyni
    service:
      name: nginx
      state: restarted