Sobes.tech
Junior

Mis on handlerid?

sobes.tech AI

Vastus AI-lt

DevOps kontekstis, eriti sellistes tööriistades nagu Ansible, on Handlerid (Käsitlejad) ülesanded või koodiplokid, mis käivituvad ainult teatud tingimustel — kui neid selgelt "teavitab" teine ülesanne. Neid kasutatakse teenuste taaskäivitamiseks, serverite taaskäivitamiseks või muude toimingute tegemiseks, mis peaksid toimuma ainult pärast olulisi konfiguratsioonimuudatusi.

Peamised omadused:

  • Teavituse alusel käivituvad: Handler käivitatakse ainult siis, kui üks või mitu ülesannet on selle selgelt "teavitanud" (näiteks Ansible'is kasutades notify).
  • Ühekordne täitmine: Isegi kui mitu ülesannet teavitavad sama handlerit, täidetakse see ainult üks kord playbooki või include_tasks/import_tasks sektsiooni lõpus, kus see on määratletud. See takistab teenuste korduvat taaskäivitamist.
  • Deklaratiivne lähenemine: See võimaldab deklaratiivselt määratleda, millised toimingud tuleb teha süsteemi oleku muutmisel, ilma käsitsi käivitamata.

Näide handleri teavitamisest Ansible ülesandes:

- name: Veebiserveri konfiguratsioon
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify:  # Teavitame handlerit
    - restart nginx

Handleri definitsioon:

handlers:
  - name: restart nginx  # Handleri nimi, sobib `notify`-s märgitud nimega
    service:
      name: nginx
      state: restarted