GNU/Linux >> Belajar Linux >  >> Linux

Cara Menggunakan Handler di Ansible Playbook

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 JugaCara Membuat Peran yang Mungkin dan Menggunakannya di Playbook


Linux
  1. Bagaimana saya menggunakan Ansible dan anacron untuk otomatisasi

  2. Cara menggunakan Ansible untuk mengatur pemantauan sistem dengan Prometheus

  3. Bagaimana cara meneruskan variabel tambahan ke buku pedoman Ansible

  1. Cara Menginstal dan Menggunakan Ansible di Debian 11

  2. Cara membuat Playbook yang Mungkin

  3. Cara menginstal paket perangkat lunak dengan playbook Ansible

  1. Cara Menggunakan Tag di Ansible Playbook (Contoh)

  2. Cara Mengunduh dan Menggunakan Ansible Galaxy Roles di Ansible Playbook

  3. Cara Menggunakan Ansible Vault untuk Mengamankan Data Sensitif