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