GNU/Linux >> Belajar Linux >  >> Linux

Cara menggunakan Ansible untuk mengonfigurasi proxy terbalik

Apa itu penyeimbang beban ? Penyeimbang beban adalah cara yang efisien untuk mendistribusikan lalu lintas jaringan di antara berbagai server backend. Itu juga dikenal sebagai server farm atau server pool. Ini mendistribusikan permintaan klien atau beban jaringan ke server web target. Load balancer bekerja dengan konsep round-robin, yang memastikan keandalan dan ketersediaan yang tinggi.

Satu skenario

Anda memiliki server web yang dapat mengelola 100 klien sekaligus. Tiba-tiba permintaan ke server tertentu meningkat 100 persen. Kemungkinan situs web akan mogok atau dihentikan. Untuk menghindari situasi ini, siapkan server web target. Dalam skenario ini, klien tidak pernah pergi ke server web target. Sebaliknya, permintaan mereka pergi ke server master, dan server master mengirimkan permintaan ke server web target. Saat server web target membalas ke server web master, yang dikenal sebagai proxy terbalik.

[ Anda mungkin juga menyukai: Mengubah penerapan Kubernetes menjadi layanan Knative ]

Menggunakan HAProxy sebagai proxy

Port pada server web utama disebut port frontend. HAProxy adalah penyeimbang beban HTTP yang dapat dikonfigurasi sebagai proxy terbalik. Di sini kita akan melihat bagaimana saya mengonfigurasi HAProxy dengan menggunakan playbook Ansible.

Periksa sistem di mana Anda perlu mengonfigurasi HAProxy

HAProxy tidak diinstal pada sistem ini. Anda dapat mengonfirmasinya dengan perintah berikut:

rpm -q haproxy

Langkah-langkah untuk mengkonfigurasi HAProxy

Langkah 1 - Instal HAProxy

Untuk menginstal HAProxy, Anda harus menggunakan paket modul di mana Anda memberikan nama layanan yang ingin Anda instal:

    - name: "Configure Load balancer"
      package:
        name: haproxy

Langkah 2 - Salin file konfigurasi untuk proxy terbalik

Salin file konfigurasi agar Anda dapat mengubahnya:

cp /etc/haproxy/haproxy.cfg  /root/ws1/haproxy.cfg

Langkah 3 - Ubah port frontend dan tetapkan IP backend

Secara default, frontend terikat ke port 5000. Saya mengubah nomor port menjadi 8080. Saya juga menerapkan for loop untuk mengkonfigurasi IP backend. Sekarang Anda dapat meluncurkan server web sebanyak yang Anda perlukan, dan tidak perlu mengonfigurasi IP secara manual di dalam /etc/httpd/httpd.conf . Ini akan secara otomatis mengambil IP dari inventaris.

backend app
   balance     roundrobin
{%  for i in groups ["web"] %}
   server  app1{{ loop.index }} {{ i}}:80 check
{% endfor %}

Langkah 4 - Salin haproxy.cfg ke node terkelola

Menggunakan templat mode, salin file konfigurasi untuk HAProxy dari node pengontrol ke node yang dikelola:

    - template:
        dest: "/etc/haproxy/haproxy.cfg"
        src: "/root/ws1/haproxy.cfg"

Langkah 5 - Mulai layanan

Gunakan layanan modul untuk memulai layanan HAProxy:

    - service:
        name: "haproxy"
        state: restarted

Periksa sistem tempat Anda perlu menginstal server web httpd

Untuk menguji konfigurasi HAProxy, Anda juga akan mengonfigurasi httpd pada node target Anda dengan bantuan Ansible. Untuk memeriksa apakah Anda belum memiliki httpd di sistem Anda, gunakan perintah berikut:

 rpm -q httpd

Langkah 1 - Instal httpd

Paket modul digunakan untuk menginstal httpd pada simpul yang dikelola:

    - name: "HTTPD CONFIGURE"
      package:
        name: httpd

Langkah 2 - Salin laman web

Templat modul digunakan untuk menyalin halaman web Anda dari sumber ke tujuan:

    - template:
        dest: "/var/www/html/index.html"
        src: "/root/ws1/haproxy.html"

Langkah 3 - Mulai layanan

Layanan modul digunakan untuk memulai httpd layanan:

    - service:
        name: "haproxy"
        state: restarted

Lengkapi buku pedoman untuk mengonfigurasi proxy terbalik

Dalam playbook ini, Anda memiliki dua host berbeda dengan dua grup berbeda. Satu grup untuk server web, dan grup lainnya untuk penyeimbang beban:

---
- hosts: web
  tasks:
    - name: "HTTPD CONFIGURE"
      package:
        name: httpd
    - template:
        dest: "/var/www/html/index.html"
        src: "/root/ws1/haproxy.html"
    - service:
        name: "httpd"
        state: restarted
- hosts: lb
  tasks:
    - name: "Configure Load balancer"
      package:
        name: haproxy
    - template:
        dest: "/etc/haproxy/haproxy.cfg"
        src: "/root/ws1/haproxy.cfg"
    - service:
        name: "haproxy"
        state: restarted

Jalankan buku pedoman

ansible-playbook haproxy.yml

Keluaran

Playbook berhasil dijalankan, dan dua server web target dapat diakses oleh server web utama menggunakan penyeimbang beban.

[ Mencari lebih banyak tentang otomatisasi sistem? Mulailah dengan The Automated Enterprise, buku gratis dari Red Hat. ] 

Kesimpulan

Penyeimbang beban dan proxy terbalik sekarang telah dikonfigurasi oleh Ansible. Anda dapat menambahkan lapisan perlindungan dan ketersediaan ke layanan web Anda dengan menambahkan HAProxy ke infrastruktur Anda. Pastikan untuk memeriksa dokumentasi target spesifik Anda untuk mempelajari lebih lanjut.


Linux
  1. Cara mengkonfigurasi server web Apache

  2. Cara mengonfigurasi penyeimbang beban HAProxy

  3. Cara menginstal dan Mengonfigurasi penyeimbang beban HAProxy di Debian 11

  1. Cara menggunakan Ansible untuk menginstal dan mengkonfigurasi Redis 6 di Ubuntu 20.04

  2. Cara menggunakan Ansible untuk menginstal dan mengkonfigurasi Redis 6 di Debian 11

  3. Cara mengonfigurasi Database Budak MySQL

  1. Cara Menggunakan Tag di Ansible Playbook (Contoh)

  2. Cara Mengkonfigurasi HAProxy di Server Debian 9 / Ubuntu 16.04

  3. Cara Menggunakan Variabel dalam Ansible Playbook