Sobes.tech
Junior

Handler nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

DevOps bağlamında, özellikle Ansible gibi araçlarda, Handlerlar (İşleyiciler), yalnızca belirli koşullar altında çalışan görevler veya kod bloklarıdır — başka bir görev tarafından açıkça "bildirildiğinde" çalışırlar. Hizmetleri yeniden başlatmak, sunucuları yeniden başlatmak veya yapılandırmadaki önemli değişikliklerden sonra gerçekleşmesi gereken diğer işlemleri yapmak için kullanılırlar.

Ana özellikler:

  • Bildirimle çalıştırılır: Handler, yalnızca bir veya birkaç görev onu açıkça "bildirdiğinde" (örneğin, Ansible'de notify kullanarak) başlatılır.
  • Tek seferlik çalıştırma: Aynı handler'ı birden fazla görev bildirse bile, o sadece playbook'un sonunda veya include_tasks/import_tasks bölümünde tanımlandığı yerde bir kez çalışır. Bu, hizmetlerin çoklu yeniden başlatılmasını önler.
  • Deklaratif yaklaşım: Sistem durumundaki değişikliklere göre hangi işlemlerin yapılması gerektiğini deklaratif olarak tanımlamalarına olanak tanır, manuel çalıştırma endişesi olmadan.

Ansible görevi içinde handler bildirimine örnek:

- name: Web sunucusunu yapılandır
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify:  # Handler'ı bildiriyoruz
    - restart nginx

Handler tanımı:

handlers:
  - name: restart nginx  # Handler adı, notify içindeki isimle aynı
    service:
      name: nginx
      state: restarted