Junior
Ҳендлерҳо чӣ мебошанд?
sobes.tech AI
Ҷавоб аз AI
ДевОпс контекстида, айниқса Ansible каби инструментларда, Handlerлар (Ишловчилар) — муайян шартлар бажарилгандагина ишга тушадиган вазифалар ёки код блоклари бўлиб, улар бошқа бир вазифа томонидан аниқ "хабар берилганда" ишга тушади. Улар хизматларни қайта ишга тушириш, серверларни қайта ишга тушириш ёки конфигурациядаги муҳим ўзгартиришлардан кейин амалга оширилиши керак бўлган бошқа ҳаракатлар учун қўлланади.
Асосий хусусиятлар:
- Хабар билан ишга туширилади: Ишловчи фақат бир ёки бир нечта вазифа уни аниқ "хабар берганда" (масалан, Ansibleда
notifyорқали) ишга тушади. - Бир марта бажарилади: Ҳатто бир неча вазифа шу бир ишловчини хабар қилса ҳам, у фақат playbook ёки
include_tasks/import_tasksбўлими охирида белгиланган жойда бир марта бажарилади. Бу хизматларни кўп марта қайта ишга туширишнинг олдини олади. - Декларатив ёндашув: Улар тизим ҳолатидаги ўзгартиришларга кўра қандай ҳаракатлар амалга оширилиши кераклигини декларатив равишда белгилашга имкон беради, қўлда ишга туширишга эҳтиёж йўқ.
Ansible вазифасида ишловчининг хабар бериш намунаси:
- name: Веб серверни конфигурациялаш
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: # Ишловчини хабар қиламиз
- restart nginx
Ишловчини таърифлаш:
handlers:
- name: restart nginx # Ишловчининг номи, notifyдаги ном билан мос келади
service:
name: nginx
state: restarted