Di Ansible, handler sama seperti tugas lainnya tetapi hanya berjalan saat dipanggil atau diberi tahu. Dibutuhkan tindakan ketika perubahan telah dibuat pada host yang dikelola. Handler digunakan dalam memulai perubahan sekunder seperti memulai atau memulai ulang layanan setelah instalasi atau bahkan memuat ulang layanan setelah beberapa modifikasi dibuat dalam file konfigurasi. Dalam panduan ini, kami akan menjelaskan lebih banyak tentang penangan Ansible. Kita akan belajar bagaimana menggunakan handler di playbook yang memungkinkan.
File playbook yang memungkinkan dengan handler
Untuk lebih memahami cara kerja Handler, kita akan mengambil contoh file playbook – install_apache.yml – yang menginstal server web Apache dan kemudian me-restart layanan Apache. Pada contoh di bawah, pawang diberitahu untuk memulai ulang layanan Apache segera setelah penginstalan. Ini dicapai dengan menggunakan modul notify seperti yang ditunjukkan. Perhatikan bahwa nama 'notify' harus sama dengan nama handler seperti yang ditunjukkan, jika tidak, Anda akan menemukan kesalahan dalam file playbook Anda.
--- - hosts: staging name: Install become: yes tasks: - name: Install Apache2 on Ubuntu server apt: name: apache2 state: present update_cache: yes notify: - Restart apache2 handlers: - name: Restart apache2 service: name: apache2 state: restarted
Sekarang mari kita jalankan file playbook.
$ ansible-playbook /etc/ansible/install_apache.yml -K
Dari output, Anda dapat melihat Handler dieksekusi tepat setelah tugas.
Banyak tugas dengan beberapa penangan
Selain itu, kita dapat memiliki beberapa tugas yang memanggil beberapa penangan. Pertimbangkan file buku pedoman di bawah ini.
Berikut adalah 2 tugas yang harus dijalankan:
- Memasang server web Apache
- Mengizinkan lalu lintas HTTP di firewall UFW.
Setelah tugas berhasil dijalankan, saya telah memanggil masing-masing penangan dengan modul 'beri tahu' seperti yang ditunjukkan di bawah ini. Handler pertama memulai ulang Apache dan yang kedua memuat ulang firewall UFW.
--- - hosts: staging name: Install become: yes tasks: - name: Install Apache2 on Ubuntu server apt: name: apache2 state: present update_cache: yes - name: Allow HTTP traffic on UFW firewall ufw: rule: allow port: http proto: tcp notify: - Restart apache2 - Reload ufw firewall handlers: - name: Restart apache2 service: name: apache2 state: restarted - name: Reload ufw firewall ufw: state: enabled
Saat file playbook dieksekusi, kedua penangan dijalankan oleh Ansible tepat setelah Apache diinstal dan traffic HTTP diizinkan di firewall.
Tindakan sekunder yang dijalankan oleh penangan di sini adalah:
- Memulai ulang Apache
- Mengaktifkan dan memuat ulang firewall agar perubahan yang dibuat dapat diterapkan.
Kesimpulan
Seperti yang telah Anda lihat, handler sama seperti tugas biasa, hanya saja mereka direferensikan menggunakan modul unik global yang disebut 'notify'. Jika penangan tidak diberi tahu, ia gagal dijalankan. Ingatlah bahwa semua penangan berjalan setelah semua tugas selesai.
Baca Juga : Cara Membuat Peran yang Mungkin dan Menggunakannya di Playbook