Sobes.tech
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