Sobes.tech
Junior

Ի՞նչ են հենդլերները։

sobes.tech AI

Պատասխան AI-ից

DevOps կոնտեքստում, հատկապես Ansible նման գործիքներում, Handler-ները (վերահսկիչներ) այն գործառույթներն են կամ կոդի բլոկները, որոնք գործում են միայն որոշ պայմանների դեպքում — երբ դրանք բացահայտորեն "հայտնվում" են այլ գործառույթի կողմից։ Դրանք օգտագործվում են ծառայությունների վերագործարկման, սերվերների վերագործարկման կամ այլ գործողությունների համար, որոնք պետք է կատարվեն միայն կարևոր կոնֆիգուրացիոն փոփոխություններից հետո:

Հիմնական առանձնահատկությունները՝

  • Հայտարարության միջոցով գործարկվում է: Handler-ը սկսվում է միայն այն ժամանակ, երբ մի կամ մի քանի գործառույթներ նրան բացահայտորեն "հայտնում" են (օրինակ՝ Ansible-ում notify-ի միջոցով):
  • Միայն մեկ անգամ կատարման: Թեև մի քանի գործառույթներ նույն handler-ին տեղեկացնեն, այն կկատարվի միայն մեկ անգամ՝ playbook-ի կամ include_tasks/import_tasks հատվածի վերջում, որտեղ այն սահմանված է։ Սա կանխում է ծառայությունների բազմակի վերագործարկումը:
  • Հայտարարական մոտեցում: Դրանով կարելի է հայտարարագրել, թե ինչ գործողություններ պետք է կատարվեն համակարգի վիճակի փոփոխության դեպքում՝ առանց ձեռքով գործարկելու:

Ansible գործառույթի handler-ների մասին օրինակ՝

- name: Վեբ սերվերի կոնֆիգուրացիա
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify:  # Հաղորդում ենք handler-ին
    - restart nginx

Handler-ի սահմանում՝

handlers:
  - name: restart nginx  # Handler-ի անունը, համընկնում է notify-ում նշված անվան հետ
    service:
      name: nginx
      state: restarted