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